Anagrams ( Creating Anagrams -Entered Words )

Saturday, September 15, 2012

Anagrams ( Creating Anagrams -Entered Words )





import  java.io.*;
 
public class Anagrams
{
   public static void main(String[] args)throws IOException
   {
       BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
          System.out.print("Enter a string:"); 
          String s = r.readLine(); 
              
          char[] text = new char[s.length()]; 
       for (int i=0; i<s.length(); i++)
       {
           text[i] = s.charAt(i);
       }
       System.out.println("Here are all the anagrams of " + s);
       printAnagrams(text, 0); 
   
   }
   
   public static void printAnagrams(char[] a, int i)
   {
       if (i == a.length-1)  printArray(a);
       else {
           for (int j=i; j< a.length; j++) {
               //swap a[i] with a[j]
               char c = a[i]; 
               a[i] = a[j]; 
               a[j] = c;
               printAnagrams(a, i+1);
               //swap back
               c = a[i]; 
               a[i] = a[j]; 
               a[j] = c;
           }
       }
   }
   static void printArray(char [] a)
   {
       for (int i=0; i< a.length; i++) System.out.print(a[i]); 
       System.out.println();
   } 
}

0 comments :

Post a Comment