假设字符串中的所有字符都不重复,输出字符串的所有组合
递归法:遍历字符串,每个字符只能取或者不取。若无该字符,就把它放在结果字符中,遍历完毕后,输出结果字符串。
递归法:遍历字符串,每个字符只能取或者不取。若无该字符,就把它放在结果字符中,遍历完毕后,输出结果字符串。
输入字符串: 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);
}
}