本帖最后由 李永佳 于 2015-12-17 18:50 编辑
import java.util.*;
class Test{
public static void main(String[] args){
String str = "abc";
char[] arr = str.toCharArray();
StringBuffer sb = new StringBuffer();
ArrayList<String> list = new ArrayList<String>();
for(int x=0;x<arr.length;x++){
for(int y=0;y<arr.length;y++){
for(int z=0;z<arr.length;z++){
if(!sb.toString().contains(String.valueOf(arr[x])))
sb.append(arr[x]);
if(!sb.toString().contains(String.valueOf(arr[y])))
sb.append(arr[y]);
if(!sb.toString().contains(String.valueOf(arr[z])))
sb.append(arr[z]);
if(!list.contains(sb.toString()))
list.add(sb.toString());
sb.delete(0,sb.length());
}
}
}
System.out.println(list);
}
}
程序现在不够延续性,一个字母需要有一个for,这样子搞的很麻烦,还没想到更好的办法。
我觉得递归应该可以简单的实现这个代码,但是没想出来该怎么用。哪位大神帮帮忙,教教用递归实现这个需求???
|
|