Advertisement
Guest User

Untitled

a guest
Sep 21st, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. public static List<String> balancedParens(int n) {
  2. List<String> listOfBalancedParens = new ArrayList<>();
  3. if (n == 0) {
  4. return listOfBalancedParens;
  5. }
  6.  
  7. int i = 1;
  8. listOfBalancedParens.add("()"); // <- n - 1
  9. List<String> result = new ArrayList<>(); // <- n
  10. while (i != n) {
  11.  
  12. String[] arr = new String[listOfBalancedParens.size() * 3];
  13. int k = 0;
  14.  
  15. for (String str :
  16. listOfBalancedParens) {
  17. arr[k] = str + "()";
  18. k++;
  19. arr[k] = "(" + str + ")";
  20. k++;
  21. arr[k] = "()" + str;
  22. k++;
  23. }
  24.  
  25. result.clear();
  26. for (String str :
  27. arr) {
  28. if (!result.contains(str)) {
  29. result.add(str);
  30. }
  31. }
  32.  
  33. i++;
  34.  
  35. if (i % 2 == 0 && i != 2) {
  36. String str = IntStream.range(0, i / 2).mapToObj(j -> "(())").collect(Collectors.joining());
  37. result.add(str);
  38. }
  39.  
  40.  
  41. listOfBalancedParens = result;
  42.  
  43.  
  44. }
  45.  
  46.  
  47. return result;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement