Advertisement
scottashipp

PermutationGenerator2.java

Apr 16th, 2013
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.82 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.Scanner;
  4.  
  5. public class PermutationGenerator2 {
  6.    
  7.     private static String inputWithoutC(String input, char c) {
  8.         String inputWithoutC = "";
  9.         char[] temp = input.toCharArray();
  10.         for(char d : temp) {
  11.             if(d !=c ) {
  12.                 inputWithoutC += d;
  13.             }
  14.         }
  15.         return inputWithoutC;
  16.     }
  17.    
  18.    
  19.     private static ArrayList<String> generatePermutationsOfAString(String input) {
  20.         //null check
  21.         if(input == null) {
  22.             return null;
  23.         }
  24.        
  25.         ArrayList<String> subPermutations = new ArrayList<String>();
  26.         ArrayList<String> permutations = new ArrayList<String>();
  27.        
  28.         char[] temp = input.toCharArray();
  29.        
  30.         //base case: two letters, return each one plus their two permutations
  31.         if(temp.length == 2) {
  32.             permutations.add(String.valueOf(temp[0]));
  33.             permutations.add(String.valueOf(temp[1]));
  34.             permutations.add(String.valueOf(temp[0]) + String.valueOf(temp[1]));
  35.             permutations.add(String.valueOf(temp[1]) + String.valueOf(temp[0]));
  36.             return permutations;
  37.         }
  38.        
  39.         for(char c : temp) {
  40.             subPermutations = generatePermutationsOfAString(inputWithoutC(input, c));
  41.             /* new line: */ permutations.add(String.valueOf(c));
  42.             for(String s : subPermutations) {          
  43.                 permutations.add(String.valueOf(c) + s);
  44.             }
  45.         }
  46.         return permutations;
  47.     }
  48.        
  49.     /**
  50.      * @param args
  51.      */
  52.     public static void main(String[] args) {
  53.         Scanner readUserInput = new Scanner(System.in);
  54.         System.out.println("Enter the source string: ");
  55.         String permuteThis = readUserInput.next();
  56.         System.out.println("\nThe resulting permutations are: ");
  57.         //begin new lines
  58.         ArrayList<String> permutations = generatePermutationsOfAString(permuteThis);
  59.         Collections.sort(permutations);
  60.         //end new lines
  61.         for(String s : permutations) {
  62.             System.out.print(s + "\t");
  63.         }
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement