力扣 921. 使括号有效的最少添加 栈 思维

https://leetcode-cn.com/problems/minimum-add-to-make-parentheses-valid/
在这里插入图片描述
思路:初始v a l valval为0,遇到左括号自增,遇到右括号自减,当v a l < 0 val<0val<0时必须补上其相反数个数的左括号。最后如果v a l > 0 val>0val>0,必须补全相应个数的右括号。

class Solution {
public:
    int minAddToMakeValid(string S) {
        int ans=0,cnt=0,siz=S.size();
        for(int i=0;i<siz;i++){
            cnt+=S[i]=='('?1:-1;
            if(cnt<0)
                ans-=cnt,cnt=0;
        }
        if(cnt)
            ans+=abs(cnt);
        return ans;
    }
};

版权声明:本文为xiji333原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。