Advertisement
Guest User

Untitled

a guest
Aug 21st, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.76 KB | None | 0 0
  1. package com.company;
  2. import java.lang.String;
  3. import java.util.*;
  4.  
  5. public class Main {
  6.  
  7.     public static void main(String[] args) {
  8.         Set<String> ans = new HashSet<String>();
  9.         String ss = new String("())())");
  10.         int n = ss.length();
  11.         char[] s = ss.toCharArray();
  12.         int mn = 100000;
  13.         for (int mask = 0; mask < (1 << n); mask++)
  14.         {
  15.             String t = new String();
  16.             t = "";
  17.             ArrayList<Integer> er = new ArrayList<>();
  18.             for (int i = 0; i < n; i++) {
  19.                 if ((s[i] == '(' || s[i] == ')') && (((mask >> i) & 1) != 0))
  20.                     er.add(i);
  21.             }
  22.             Collections.reverse(er);    //reverse(er.begin(), er.end());
  23.             int er_cnt = er.size();
  24.             for (int i = 0; i < n; i++)
  25.                 if (!er.isEmpty() && er.get(er.size()) == i)
  26.                     er.remove(er.size());
  27.                 else
  28.                     t += s[i];
  29.             int cur = 0;
  30.             boolean ok = true;
  31.             for (int i = 0; i < t.length(); i++)
  32.             {
  33.                 if (t.charAt(i) == '(') cur++;
  34.                 else if (t.charAt(i) == ')') cur--;
  35.                 ok &= (cur >= 0);
  36.             }
  37.             ok &= (cur == 0);
  38.             //if (er_cnt == 2 && ok) cout << t << endl;
  39.             if (ok)
  40.                 if (er_cnt == mn)
  41.                     ans.add(t);
  42.                 else if (er_cnt < mn)
  43.                 {
  44.                     ans.clear();
  45.                     mn = er_cnt;
  46.                     ans.add(t);
  47.                 }
  48.         }
  49.         Iterator iter = ans.iterator();
  50.         while (iter.hasNext()) {
  51.             System.out.println(iter.next());
  52.         }
  53.         System.out.println("lol");
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement