看了下别人的答案,复杂的要死,分享一下我自己写的
代码很简单,核心思路:
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]); } } }