私は与えられた文字列のパワーセットを生成するメソッドを作成しようとしています。今のところ、私は間違って "[abc、bc、c、b、ac、c、a、ab、b、a]"を出力するこれを思いついた。文字列のパワーセットを生成する
public static ArrayList<String> powerSet(String s){
ArrayList<String> set = new ArrayList<String>();
if(!s.isEmpty())
set.add(s);
for(int i=0; i<s.length();i++){
String substring = s.substring(0, i) + s.substring(i+1);
set.addAll(powerSet(substring));
}
return set;
}
これは宿題の一部のためである、と私はヘルパークラスの任意の並べ替えを作成することはできませんよ、と方法は、型のArrayListでなければなりません。メソッドには再帰が必要です。
ご協力いただきありがとうございます。
答えは何をすべきですか?秩序は重要か? –
@PaulBoddington順序は関係ありませんが、 "a"、 "b"、 "c"、 "ab"、 "ac"、 "bc"、 "abc" 。 – skulltula
さて、あなたは本質的にそれをやっています。単に ""を追加し、ArrayListではなくHashSetを使用し、最後にArrayListに変換します。 –