Leetcode学习笔记:#921. Minimum Add to Make Parentheses Valid
Given a string S of ‘(’ and ‘)’ parentheses, we add the minimum number of parentheses ( ‘(’ or ‘)’, and in any positions ) so that the resulting parentheses string is valid.
Formally, a parentheses string is valid if and only if:
It is the empty string, or
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.
Given a parentheses string, return the minimum number of parentheses we must add to make the resulting string valid.
实现:
public int minAddToMakeValid(String S){
int left = 0, right = 0;
for(char i: S.toCharArray()){
if(right == 0 && i == ')')
left++;
else
right += i == '(' 1 : -1;
}
return left + right;
}
思路:
一次遍历。只要遇到左括号就必定要匹配一个右括号,每遇到一个不匹配的左右括号都加1 使他们匹配。