Friday, September 13, 2013

WAP to generate permutation of string

void permute(String str) {
        int length = str.length();
        boolean[] used = new boolean[length];
        StringBuilder out = new StringBuilder();
        char[] in = str.toCharArray();

        doPermute(in, out, used, length, 0);
    }

    static void doPermute(char[] in, StringBuilder out,
            boolean[] used, int length, int level) {
        if (level == length) {
            System.out.println(out.toString());
            ++count1;
            return;
        }

        for (int i = 0; i < length; ++i) {
            if (used[i]) {
                continue;
            }
            out.append(in[i]);
            used[i] = true;
            doPermute(in, out, used, length, level + 1);
            used[i] = false;
            out.setLength(out.length() - 1);
        }
    }

No comments:

Post a Comment