From b32b4289e79f7185f1dc2f550ec7ef5708efd128 Mon Sep 17 00:00:00 2001 From: Abhishek Tripathi <42455093+abhishektripathi66@users.noreply.github.com> Date: Wed, 9 Oct 2024 13:54:08 +0530 Subject: [PATCH] Create ValidParanthesis.java --- Leetcode/ValidParanthesis.java | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Leetcode/ValidParanthesis.java 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; + } +}