看了下别人的答案,复杂的要死,分享一下我自己写的
代码很简单,核心思路:
1、使用TreeSet进行排序
2、对字符串裁切
public ArrayList<String> Permutation(String str) {
TreeSet<String> treeSet = new TreeSet<>();
cal(treeSet, str, "");
return new ArrayList<>(treeSet);
}
public void cal(TreeSet<String> set, String str, String ss) {
if (str.length() == 1) {
set.add(ss + str);
} else {
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
cal(set, str.substring(0, i) + str.substring(i + 1, str.length()), ss+chars[i]);
}
}
}
京公网安备 11010502036488号