Advertisement
javatechie

String Permutation

Jan 23rd, 2023 (edited)
593
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.84 KB | Source Code | 0 0
  1. import java.util.Arrays;
  2. import java.util.HashSet;
  3. import java.util.List;
  4. import java.util.Set;
  5. import java.util.stream.Collectors;
  6.  
  7. public class Test {
  8.  
  9.     public static Set<String> getPermutation(String str) {
  10.  
  11.         // create a set to avoid duplicate permutation
  12.         Set<String> permutations = new HashSet<>();
  13.  
  14.         // check if string is null
  15.         if (str == null) {
  16.             return null;
  17.         } else if (str.length() == 0) {
  18.             // terminating condition for recursion
  19.             permutations.add("");
  20.             return permutations;
  21.         }
  22.  
  23.         // get the first character
  24.         char first = str.charAt(0);
  25.  
  26.         // get the remaining substring
  27.         String sub = str.substring(1);
  28.  
  29.         // make recursive call to getPermutation()
  30.         Set<String> words = getPermutation(sub);
  31.  
  32.         // access each element from words
  33.         for (String strNew : words) {
  34.             for (int i = 0;i<=strNew.length();i++){
  35.  
  36.                 // insert the permutation to the set
  37.                 permutations.add(strNew.substring(0, i) + first + strNew.substring(i));
  38.             }
  39.         }
  40.         return permutations;
  41.     }
  42.     public static void main(String[] args) {
  43.         //findAllPossibleGreaterNumber();
  44.         System.out.println(getPermutation("ABC"));
  45.     }
  46.  
  47. //    private static void findAllPossibleGreaterNumber() {
  48. //        int[] array = {17, 6, 9, 16, 5, 13, 8, 2, 1};
  49. //        List<Integer> list= Arrays.stream(array).boxed().collect(Collectors.toList());
  50. //        for (int i = 0; i <= array.length-1 ; i++) {
  51. //            list.remove(Integer.valueOf(array[i]));
  52. //            if(!list.isEmpty()) {
  53. //                if (array[i] >= list.stream().max(Integer::compareTo).get())
  54. //                    System.out.println(array[i]);
  55. //            }
  56. //        }
  57. //    }
  58.  
  59. }
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement