Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static List<String> balancedParens(int n) {
- List<String> listOfBalancedParens = new ArrayList<>();
- if (n == 0) {
- return listOfBalancedParens;
- }
- int i = 1;
- listOfBalancedParens.add("()"); // <- n - 1
- List<String> result = new ArrayList<>(); // <- n
- while (i != n) {
- String[] arr = new String[listOfBalancedParens.size() * 3];
- int k = 0;
- for (String str :
- listOfBalancedParens) {
- arr[k] = str + "()";
- k++;
- arr[k] = "(" + str + ")";
- k++;
- arr[k] = "()" + str;
- k++;
- }
- result.clear();
- for (String str :
- arr) {
- if (!result.contains(str)) {
- result.add(str);
- }
- }
- i++;
- if (i % 2 == 0 && i != 2) {
- String str = IntStream.range(0, i / 2).mapToObj(j -> "(())").collect(Collectors.joining());
- result.add(str);
- }
- listOfBalancedParens = result;
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement