Wednesday, April 30, 2014

Java Program to generate permutations of a string

If one wants to generate various possible permutations ( order  matters) from a string.
Ex:
For input {'a','b'},  output would be 'a','b','ab','ba'
For input {'a','b','c'} , output would be 'a','b','c','ac','ab','bc','ac', 'abc'


import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.Vector;

public class AllPerm {
        static String originalString = "abc";
        static Vector<String> stringSet = new Vector<String>();
        static void addCharAt(int index){
             int vecSize = stringSet.size();
              for (int i=0;i<vecSize;i++){
                 StringBuffer element = new StringBuffer(stringSet.get(i));
                 for (int j=0;j<(element.length()+1);j++){
                       element.insert(j, originalString.charAt(index));
                       stringSet.add(element.toString());
                        element.deleteCharAt(j);
               }
             }
       }

      public static void main(String[] args) {
 
              stringSet.add("");
 
              for (int i=0;i<originalString.length();i++){
                 addCharAt(i);
              }
 
              for (int i=0;i<stringSet.size() ;i++){
                  System.out.println(i + " " +  stringSet.get(i));
              }
 }
    }

No comments:

Post a Comment