Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.scottshipp;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Scanner;
- public class PermutationGenerator3 {
- private static String inputWithoutC(String input, int index) {
- String inputWithoutC = "";
- char[] temp = input.toCharArray();
- for(int i = 0; i < temp.length; i++) {
- if(i != index) {
- inputWithoutC += temp[i];
- }
- }
- 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(int i = 0; i < temp.length; i++) {
- char c = temp[i];
- subPermutations = generatePermutationsOfAString(inputWithoutC(input, i));
- 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