出力文字列のすべての配列の組合せ
805 ワード
文字列内のすべての文字が重複しないと仮定し、出力文字列のすべての組合せ再帰法:文字列を遍歴し、各文字は取得または取得できません.この文字がない場合は、結果文字に入れ、遍歴が完了したら、結果文字列を出力します.
入力文字列:abc
出力結果:a b c ab ac bc abc
入力文字列:abc
出力結果:a b c ab ac bc abc
public class Text2 {
public static void main(String[] args) {
String s="abc";
char []c=s.toCharArray();
StringBuffer sb = new StringBuffer("");
int len=c.length;
for(int i=1;i<=len;i++){
CombineRecursiveImpl(c, 0, i, sb);
}
}
public static void CombineRecursiveImpl(char []c,int begin,int len,StringBuffer sb){
if(len==0){
System.out.print(sb+" ");
return ;
}
if(begin==c.length) return;
sb.append(c[begin]);
CombineRecursiveImpl(c, begin+1, len-1, sb);
sb.deleteCharAt(sb.length()-1);
System.out.println(sb);
CombineRecursiveImpl(c, begin+1, len, sb);
}
}