如何输出字符串的所有组合

1.题目描述

假设字符串中的所有字符都不重复,如何输出字符串中的所有组合?

例如输入:

“abc“,则输出a , b , c , ab , ac , bc , abc 共七种组合。

2.解题分析

本题可以使用递归方法,遍历字符串,每个字符只能取或不取。若取该字符,就把它放到字符串中,遍历完毕后,输出结果字符串。

3.代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

public class 输出字符串的所有组合 {
public static void CombineRecursiveImpl(char[]c,int begin,int len,StringBuffer sb){
if(len==0){
System.out.println(sb+" ");
return ;
}
if(begin==c.length){
return ;
}
sb.append(c[begin]);
CombineRecursiveImpl(c, begin+1, len-1, sb);
sb.deleteCharAt(sb.length()-1);
CombineRecursiveImpl(c, begin+1, len, sb);

}

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);
}
}

}
-------------本文结束感谢您的阅读-------------
0%