62,617
社区成员
发帖
与我相关
我的任务
分享
String input = "abc"; //求a/b/c三个字符的全排列
Set<String> results = new LinkedHashSet<String>();
results.add("");
for (int i=0; i<input.length(); i++)
for (int j=0; j<input.length(); j++){
String current = input.substring(j, j+1);
Set<String> newones = new LinkedHashSet<String>();
for(String s : results){
if (s.indexOf(current)==-1) s+=current;
newones.add(s);
}
results.addAll(newones);
}
for (String s: results)
if (s.length()==input.length())System.out.println(s);
String input = "abc"; //求a/b/c三个字符的全排列
Set<String> results = new LinkedHashSet<String>();
results.add("");
for (int i=0; i<input.length(); i++)
for (int j=0; j<input.length(); j++){
String current = input.substring(j, j+1);
Set<String> newones = new LinkedHashSet<String>();
for(String s : results){
if (s.indexOf(current)==-1) s+=current;
newones.add(s);
}
results.addAll(newones);
}
for (String s: results)
if (s.length()==input.length())System.out.println(s);