Write a Program in Java to input a word and print its anagrams..
Note: Anagrams are words made up of all the characters present in the original word by re-arranging the characters.
Example: Anagrams of the word TOP are: TOP, TPO, OPT, OTP, PTO and POT
import java.util.*;class Anagrams{ int c = 0; void input()throws Exception { Scanner sc = new Scanner(System.in); System.out.print("Enter a word : "); String s = sc.next(); System.out.println("The Anagrams are : "); display("",s); System.out.println("Total Number of Anagrams = "+c); } void display(String s1, String s2) { if(s2.length()<=1) { c++; System.out.println(s1+s2); } else { for(int i=0; i<s2.length(); i++) { String x = s2.substring(i, i+1); String y = s2.substring(0, i); String z = s2.substring(i+1); display(s1+x, y+z); } } } public static void main(String args[])throws Exception { Anagrams ob=new Anagrams(); ob.input(); }}
Output:
Enter a word : BACK
The Anagrams are :
BACK
BAKC
BCAK
BCKA
BKAC
BKCA
ABCK
ABKC
ACBK
ACKB
AKBC
AKCB
CBAK
CBKA
CABK
CAKB
CKBA
CKAB
KBAC
KBCA
KABC
KACB
KCBA
KCAB
Total Number of Anagrams = 24
No comments:
Post a Comment