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;
    }
};
相关推荐
一个儒雅随和的男子7 小时前
限流算法详细剖析
java·服务器·算法
工业胶粘剂技术8 小时前
单组分高温环氧结构胶 K-EP280 完整技术参数与工程选型分析
算法·制造
小欣加油9 小时前
Leetcode31 下一个排列
数据结构·c++·算法·leetcode·职场和发展
_日拱一卒10 小时前
LeetCode:39组合总和
java·算法·leetcode·职场和发展
无限进步_10 小时前
【Linux】进程状态、僵尸与孤儿、进程调度
linux·运维·服务器·开发语言·数据结构·算法
郝学胜-神的一滴10 小时前
力扣 662 :二叉树最大宽度
java·数据结构·c++·python·算法·leetcode·职场和发展
2301_7644413310 小时前
基于Stackelberg博弈的分散式库存模型
python·算法·数学建模
qq 137401861110 小时前
医用无菌屏障系统加速老化标准解读:ASTM F1980-2016 全解析
人工智能·算法·加速老化·包装测试·astm·医疗器械包装·无菌屏障系统
wayz1110 小时前
Overlap:SLOPE(线性回归斜率)技术指标详解
算法·金融·数据分析·回归·线性回归·量化交易·特征工程
点云兔子10 小时前
舱口检测:从点云到矩形定位的射线投影算法
opencv·算法·点云·舱口检测