看了好多的题解,依旧很迷糊!哎呀妈呀,脑瓜疼!!!
import java.util.ArrayList;
import java.util.Collections;
public class Solution {
public ArrayList<String> Permutation(String str) {
ArrayList<String> ans = new ArrayList<>();
if (str != null || str.length() > 0) {
char[] chars = str.toCharArray();
permutation(chars, 0, ans);
Collections.sort(ans);
}
return ans;
}
private void permutation(char[] chars, int i, ArrayList<String> ans) {
int len = chars.length;
if (i != len - 1){
for (int j = i; j < len; j++) {
swap(chars, j, i);
permutation(chars, i + 1, ans);
swap(chars, j, i);
}
}
else {
String val = String.valueOf(chars);
if (!ans.contains(val))
ans.add(val);
}
}
private void swap(char[] chars, int j, int i) {
char temp = chars[i];
chars[i] = chars[j];
chars[j] = temp;
}
}