- SignalDesk1小时前
力扣 LeetCode 921. 使括号有效的最少添加 - 力扣(LeetCode) 921. 使括号有效的最少添加 - 只有满足下面几点之一,括号字符串才是有效的: 它是一个空字符串,或者 它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者 它可以被写作 (A),其中 A 是有效字符串。 给定一个括号字符串 s ,在每一次操作中,你都可以在字符串的任何位置插入一个括号 例如,如果 s = "()))" ,你可以插入一个开始括号为 "(()))" 或结束括号为 "())))" 。 返回 为使结果字符串 s... 思路 因为括号可以在任何地方插入,我们在意的主要就是左括号和右括号 分别多出了多少 。因此对左括号先进行计数,右括号出现时先抵消左括号,如果左括号抵消完了说明右括号有多的,反之则左括号有多的;如果二者皆为 0 则不需要补充。 代码 class Solution { public: int minAddToMakeValid(string s) { // 注意括号可以在任何位置插入 // 主要就看有多少左括号和右括号没有被抵消 int left = 0, right = 0; for (char c : s) { if (c == '(') { left++; } else { if (left > 0) { // 还有左括号就抵消 left--; } else { // 没有左括号了,右括号多了 right++; } } } return left + right; } }; 1 个帖子 - 1 位参与者 阅读完整话题
- 情报分类:综合情报
- 分类依据:内容未命中明确的垂直分类规则,归入综合情报
- 信息来源:服务器 / LINUX DO - 最新话题
- 发布时间:2026/10/6 09:38:33
- 暂无回复