Advertisement
Guest User

Untitled

a guest
Aug 29th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. private static ArrayList<String> possibilities = new ArrayList<>();
  2.  
  3. public static void main(String[] args) {
  4. String s = "abcd";
  5. loop(s, null);
  6.  
  7. for(String string : possibilities)
  8. System.out.println(string);
  9. }
  10.  
  11. private static void loop(String charSet, String potential) {
  12. for(int i = 0; i < charSet.length(); i++) {
  13. StringBuilder builder = new StringBuilder();
  14.  
  15. if(potential != null)
  16. builder.append(potential);
  17.  
  18. builder.append(charSet.charAt(i));
  19.  
  20. String newPotential = builder.toString();
  21.  
  22. String remaining = getRemainingChars(charSet, newPotential);
  23.  
  24. if(remaining.length() > 0)
  25. loop(remaining, newPotential);
  26.  
  27. if(charSet.length() == 1)
  28. possibilities.add(newPotential);
  29. }
  30. }
  31.  
  32. private static String getRemainingChars(String charSet, String usedChars) {
  33. StringBuilder remainingBuilder = new StringBuilder();
  34.  
  35. for(char c : charSet.toCharArray()) {
  36. if(usedChars.indexOf(c) == -1) {
  37. remainingBuilder.append(c);
  38. }
  39. }
  40.  
  41. return remainingBuilder.toString();
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement