Leetcode 921 minimum add to make parentheses Valid

题目:求最少添加多少个括号,让括号对有效

https://leetcode.com/problems/minimum-add-to-make-parentheses-valid/description/

题意:计算要让整个括号valid的最小个数是多少

遇到左括号cnt++,统计需要右括号的个数,当cnt < 0,说明右括号多,这个时候要添加左括号了,最后把cnt加入到结果中就好了。

为什么不能从头到尾扫一遍,求左右括号的差值,因为比如())((),这个时候左右括号的差值是0,但是我其实需要添加两个括号,要维持括号的性质

cpp 复制代码
class Solution {
public:
    int minAddToMakeValid(string s) {
        int cnt = 0;
        int ret = 0;
        for(int i = 0; i < s.size(); i++) {
            if(s[i] == '(') {
                cnt++;
            }
            if(s[i] == ')') {
                cnt--;
            }
            if(cnt < 0) {
                ret++;
                cnt = 0;
            }
        }
        ret += cnt;
        return ret;
    }
};
相关推荐
励ℳ1 天前
机器学习之线性回归算法:从原理到实践的全面解析
算法·机器学习·线性回归
_Twink1e1 天前
[算法教学]一、前置知识
算法
技小宝1 天前
如何在WPS/Excel中批量翻译长文本?
经验分享·职场和发展·excel·wps
MicroTech20251 天前
微算法科技(NASDAQ: MLGO)使用量子傅里叶变换(QFT),增强图像压缩和滤波效率
科技·算法·量子计算
㓗冽1 天前
矩阵问题(二维数组)-基础题70th + 发牌(二维数组)-基础题71th + 数字金字塔(二维数组)-基础题72th
c++·算法·矩阵
芜湖xin1 天前
【题解-Acwing】796. 子矩阵的和
算法·前缀和
shehuiyuelaiyuehao1 天前
23七大排序算法
数据结构·算法·排序算法
Σίσυφος19001 天前
E=[T]×R 的证明
算法
TracyCoder1231 天前
LeetCode Hot100(49/100)——33. 搜索旋转排序数组
算法·leetcode
熬了夜的程序员1 天前
【LeetCode】116. 填充每个节点的下一个右侧节点指针
算法·leetcode·职场和发展