質問は、与えられた長さnに対して "cc"と "ddd"で構成される文字列のすべての可能な組み合わせを含むセットを返すように求めていました。文字列の組み合わせを作成するJavaの再帰について
たとえば、与えられた長さが5の場合、セットには "ccddd"と "dddcc"が含まれます。 及び長さ6「CCCCCC」を含む設定返す、
及び長さ7は12の異なる組み合わせなどに返されます「ccdddcc」、「dddcccc」、「ccccddd」 と長さ12をcontating設定返す「DDDDDD」
ただし、返されるセットは空です。 助けてもらえますか?
は、私はあなたのアプローチを再考する必要があると思う
public static Set<String> set = new HashSet<String>();
public static Set<String> generateset(int n) {
String s = strings(n,n,"");
return set; // change this
}
public static String strings(int n,int size, String s){
if(n == 3){
s = s + ("cc");
return "";}
if(n == 2){
s = s + ("ddd");
return "";}
if(s.length() == size)
set.add(s);
return strings(n-3,size,s) + strings(n-2,size,s);
}
再帰が空の文字列を返すのはなぜですか? –
私は印刷されたセットをいつ返すかわかりません "[]" – Song
これをチェックしてください(http://stackoverflow.com/questions/18271094/java-for-creating-all-possible-combination-of-words) – emotionlessbananas