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;
    }
};
相关推荐
lucas_AI7 小时前
ConfBench:大模型的「我很有把握」,到底能不能信?
人工智能·算法
oier_Asad.Chen7 小时前
【洛谷题解/AcWing题解/真题】洛谷P2330【SCOI2005】繁忙的都市(Kruskal算法的再探究))
c++·算法·贪心算法·图论·最小生成树·kruskal
青 春 记 忆9 小时前
LeetCode 53. 最大子数组和|Python 解法详解
python·算法·leetcode
豆瓣鸡10 小时前
算法日记 - Day10
算法
戴西软件10 小时前
戴西CAxWorks.VPG车辆工程仿真软件技术解析(上)——安全仿真体系的自动化构建
运维·网络·数据库·人工智能·算法·安全·自动化
zander25810 小时前
4. 寻找两个正序数组的中位数:用分割点代替合并
数据结构·算法
Kisorge10 小时前
【电机控制器】 基于STSPIN32G4的FOC控制
stm32·嵌入式硬件·算法
Elivs10 小时前
RMSNorm函数
人工智能·算法·机器学习
tudousisi22211 小时前
P4447 [AHOI2018初中组] 分组 题解复盘
算法
SNAKEpc1213811 小时前
OpenGL(十一)- 变换管线
c语言·c++·算法·矩阵·图形渲染