Saturday, January 30, 2016

All Permutations of String

Question: Generate all permutations of a given string.
Solution:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
private List<String> permutations = new ArrayList<String>();
     
    /**
     *  Generate all the  permutations and add to array list
     
     * @param in
     * @param out
     * @param used
     * @param len
     * @param recLen
     */
    void permute(char[] in, char[] out, char[] used, int len, int recLen)
    {      
        if(recLen==len) {
            permutations.add(String.valueOf(out)); 
            return;
        }
     
        for(int i=0; i<len; i++) {
            if(used[i]==1) {
                continue;
            }
            out[recLen]=in[i];
            used[i]=1;
            permute(in, out, used, len, recLen+1);
            used[i]=0;
        }      
    }
     
    List<String> permutations(String num)
    {
        char[] out = new char[num.length()];
        char[] used = new char[num.length()];      
        permute(num.toCharArray(), out, used, num.length(), 0);
        return permutations;
    }

No comments:

Post a Comment