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"
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
Post a Comment