Advertisement
Guest User

Untitled

a guest
Dec 17th, 2014
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.08 KB | None | 0 0
  1. package hr.fer.dstankovic.part2;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.LinkedList;
  5. import java.util.List;
  6.  
  7. public class ValidParenthesis {
  8.  
  9.     public static void main(String[] args) {
  10.         int num = 7;
  11.         solve(num);
  12.         List<String> l = cache.get(num);
  13.         for (String str : l) {
  14.             System.out.println(str);
  15.         }
  16.     }
  17.  
  18.     private static List<List<String>> cache = new ArrayList<>();
  19.  
  20.     static {
  21.         List<String> tmp = new ArrayList<>();
  22.         tmp.add("");
  23.         cache.add(tmp);
  24.     }
  25.  
  26.     private static void solve(int n) {
  27.         if (cache.size() > n) {
  28.             return;
  29.         }
  30.         solve(n - 1);
  31.         List<String> fin = getFinished(n);
  32.         cache.add(fin);
  33.         return;
  34.     }
  35.  
  36.     private static List<String> finished;
  37.    
  38.     private static List<String> getFinished(int n) {
  39.         finished = new LinkedList<>();
  40.         f("", n);
  41.         return finished;
  42.     }
  43.  
  44.     private static void f(String prevStr, int rem) {
  45.         if (rem <= 0) {
  46.             finished.add(prevStr);
  47.             return;
  48.         }
  49.         for (int i = 1; i <= rem; i++) {
  50.             List<String> l = cache.get(i - 1);
  51.             for (String str : l) {
  52.                 f(prevStr + "(" + str + ")", rem - i);
  53.             }
  54.         }
  55.     }
  56.  
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement