递归实现,这个思路一定要烂熟于心
字符串组合算法
//字符串组合算法 比如 "abc" -->打印出 a b ab ac bc 等等
public class StringcomBination {
public static void main(String[] args) {
String s = "ab";
char[] c = s.toCharArray();
StringBuffer sb = new StringBuffer("");
int len = s.length();
for(int i = 0; i<s.length();i++)
{
comBination(c,0,i,sb);
}
//最终sb还是空的???
System.out.println(sb.length());
}
//组合算法
private static void comBination(char[] c, int begin, int len , StringBuffer sb)
{
//因为取得长度是0,说明没取到?
if(len ==0)
{
System.out.print(sb+" ");
return;
}
//取字符越界了,终止
if(begin ==c.length)
{
return;
}
sb.append(c[begin]);
comBination(c, begin+1, len-1, sb);
sb.deleteCharAt(sb.length()-1);
comBination(c, begin+1, len, sb);
}
}