0921. Minimum Add to Make Parentheses Valid

0921. Minimum Add to Make Parentheses Valid #

题目 #

  • 只有满足下面几点之一,括号字符串才是有效的:
    • 它是一个空字符串,或者
    • 它可以被写成 ABAB 连接), 其中 AB 都是有效字符串,或者
    • 它可以被写作 (A),其中 A 是有效字符串。
  • 给定一个括号字符串 s ,在每一次操作中,你都可以在字符串的任何位置插入一个括号
    • 例如,如果 s = "()))" ,你可以插入一个开始括号为 "(()))" 或结束括号为 "())))"
  • 返回 为使结果字符串 s 有效而必须添加的最少括号数

思路 #

模拟 #

代码 #

模拟 #

class Solution {
    public int minAddToMakeValid(String s) {
        int left = 0, ans = 0;
        for (int i = 0; i <s.length(); i++) {
            if (s.charAt(i) == '(') left++;
            else {
                if (left == 0) ans++;
                else left--;
            }
        }
        return ans + left;
    }
}

致谢 #

宫水三叶