diff --git a/Leetcode/ValidParanthesis.java b/Leetcode/ValidParanthesis.java new file mode 100644 index 0000000..393210f --- /dev/null +++ b/Leetcode/ValidParanthesis.java @@ -0,0 +1,33 @@ +/** +921. Minimum Add to Make Parentheses Valid +Solved +Medium +Topics +Companies +A parentheses string is valid if and only if: + +It is the empty string, +It can be written as AB (A concatenated with B), where A and B are valid strings, or +It can be written as (A), where A is a valid string. +You are given a parentheses string s. In one move, you can insert a parenthesis at any position of the string. + +For example, if s = "()))", you can insert an opening parenthesis to be "(()))" or a closing parenthesis to be "())))". +Return the minimum number of moves required to make s valid. + + **/ +class Solution { + public int minAddToMakeValid(String s) { + int forward =0; + int mismatch=0; + char[] b = s.toCharArray(); + for(char a:b){ + if(a=='(') forward++; + else{ + if(forward>0) forward--; + else mismatch++; + } + } + + return mismatch+forward; + } +}