Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.14 KB | None | 0 0
  1. /*
  2. Runtime: 1 ms, faster than 46.42% of Java online submissions for Minimum Add to Make Parentheses Valid.
  3. Memory Usage: 34.1 MB, less than 100.00% of Java online submissions for Minimum Add to Make Parentheses Valid.
  4. */
  5.  
  6. class Solution {
  7.     public int minAddToMakeValid(String S) {
  8.         return countMissingOpenBrackets(S) + countMissingOpenBracketsBackwards(S);
  9.     }
  10.    
  11.     int countMissingOpenBrackets(String s) {
  12.         int open = 0;
  13.         int result = 0;
  14.         for(int i = 0; i < s.length(); i++) {
  15.             if (s.charAt(i) == '(') {
  16.                 open++;
  17.             } else if (s.charAt(i) == ')') {
  18.                 if(open > 0) open--;
  19.                 else result++;
  20.             }
  21.         }
  22.         return result;
  23.     }
  24.    
  25.    
  26.     int countMissingOpenBracketsBackwards(String s) {
  27.         int open = 0;
  28.         int result = 0;
  29.         for(int i = s.length() - 1; i >= 0; i--) {
  30.             if (s.charAt(i) == ')') {
  31.                 open++;
  32.             } else if (s.charAt(i) == '(') {
  33.                 if(open > 0) open--;
  34.                 else result++;
  35.             }
  36.         }
  37.         return result;
  38.     }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement