Friday, September 11, 2015

Write a program to print all permutations of a given string

Problem definition is available here

Here is a Java implementation.
Please let me know if , you feel something wrong about code.


import java.util.*;

class Main{

StringBuilder swap(StringBuilder str,int l,int r){
char templ=str.charAt(l);
char tempr=str.charAt(r);
str.setCharAt(l,tempr);
str.setCharAt(r,templ);
return str;
}

void permute(StringBuilder str,int l){

if(l==(str.length()-1)){
System.out.println(str);
}
else{
for(int i=l;i<str.length();i++){
swap(str,l,i);
permute(str,l+1);
swap(str,l,i);
}
}

}

public static void main(String args[]){

Scanner s =new Scanner(System.in);
String st=s.next();
StringBuilder str=new StringBuilder(st);
Main m =new Main();
m.permute(str,0);



}
}



1 comment:

  1. static void display(char[] array){
    for(int i=0;i<array.length;i++)
    System.out.print(array[i]+" ");
    System.out.println();
    }
    static void permutate(char[] array,int start){
    if(start==array.length){
    display(array);
    return;
    }
    for(int i=start;i<array.length;i++){
    char temp=array[start];
    array[start]=array[i];
    array[i]=temp;
    permutate(array,start+1);
    temp=array[start];
    array[start]=array[i];
    array[i]=temp;
    }
    }

    ReplyDelete