All permutations of String - Java

public class StringPermutation {

public static void main(String[] args) {
permutation("abc");
}

private static void permutation(String str){
permutation(" ",str);
}

private static void permutation(String prefix, String str) {

int len = str.length();
if(len == 0){
System.out.println(prefix);
}
else{
for (int i = 0; i < len; i++) {
permutation(prefix+str.charAt(i),str.substring(0,i)+str.substring(i+1,len));
}
}
}

}

Output:
 abc
 acb
 bac
 bca
 cab
 cba

Explanation:

permutation(a,bc) -> permutation(ab,c) -> permutation(abc, '"') -> "abc"
                            ->permutation(ac,b) -> permutation(acb, '"') -> "acb"

permutation(b,ac) -> permutation(ba,c) -> permutation(bac, '"') -> "bac"
                            -> permutation(bc,a) -> permutation(bca, '"') -> "bca"

permutation(c,ab) -> permutation(ca,b) -> permutation(cab, '"') -> "cab"
                            -> permutation(cb,a) -> permutation(cba, '"') -> "cba"

Comments

Popular posts from this blog

public vs protected vs default access modifiers - Java

Class, Reference and Object