Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Scanner;
- public class PermutationGenerator2 {
- private static String inputWithoutC(String input, char c) {
- String inputWithoutC = "";
- char[] temp = input.toCharArray();
- for(char d : temp) {
- if(d !=c ) {
- inputWithoutC += d;
- }
- }
- return inputWithoutC;
- }
- private static ArrayList<String> generatePermutationsOfAString(String input) {
- //null check
- if(input == null) {
- return null;
- }
- ArrayList<String> subPermutations = new ArrayList<String>();
- ArrayList<String> permutations = new ArrayList<String>();
- char[] temp = input.toCharArray();
- //base case: two letters, return each one plus their two permutations
- if(temp.length == 2) {
- permutations.add(String.valueOf(temp[0]));
- permutations.add(String.valueOf(temp[1]));
- permutations.add(String.valueOf(temp[0]) + String.valueOf(temp[1]));
- permutations.add(String.valueOf(temp[1]) + String.valueOf(temp[0]));
- return permutations;
- }
- for(char c : temp) {
- subPermutations = generatePermutationsOfAString(inputWithoutC(input, c));
- /* new line: */ permutations.add(String.valueOf(c));
- for(String s : subPermutations) {
- permutations.add(String.valueOf(c) + s);
- }
- }
- return permutations;
- }
- /**
- * @param args
- */
- public static void main(String[] args) {
- Scanner readUserInput = new Scanner(System.in);
- System.out.println("Enter the source string: ");
- String permuteThis = readUserInput.next();
- System.out.println("\nThe resulting permutations are: ");
- //begin new lines
- ArrayList<String> permutations = generatePermutationsOfAString(permuteThis);
- Collections.sort(permutations);
- //end new lines
- for(String s : permutations) {
- System.out.print(s + "\t");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement