字符串的排列

来源:互联网 发布:西安少儿编程培训机构 编辑:程序博客网 时间:2024/06/11 16:10
import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Set;public class Solution {    private int[] tracking = new int[10];    private ArrayList<String> arrayList = new ArrayList<>();    private int[] string = new int[10];    private Set<String> stringSet = new HashSet<>();    public ArrayList<String> Permutation(String str) {        if(str == null) return arrayList;        Find(str, 0);        return arrayList;    }    public void Find(String str, int pos) {        for(int i  = 0; i < str.length(); ++i) {            if(tracking[i] == 0) {                tracking[i] = 1;                string[pos] = i;                if(pos + 1 == str.length()) {                    String tmp = new String("");                    for(int k = 0; k < str.length(); ++k) {                        tmp += str.charAt(string[k]);                    }                    if(!stringSet.contains(tmp)) {                        stringSet.add(tmp);                        arrayList.add(tmp);                    }                    tracking[i] = 0;                    continue;                }                Find(str, pos+1);                tracking[i] = 0;            }        }    }}
原创粉丝点击