题目描述:

给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效。从形式上讲,只有满足下面几点之一,括号字符串才是有效的:它是一个空字符串,或者
它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者
它可以被写作 (A),其中 A 是有效字符串。
给定一个括号字符串,返回为使结果字符串有效而必须添加的最少括号数。示例 1:输入:"())"
输出:1
示例 2:输入:"((("
输出:3
示例 3:输入:"()"
输出:0
示例 4:输入:"()))(("
输出:4

解法:

 1 int minAddToMakeValid(char* S) {
 2     int i,l = 0,res = 0,len=strlen(S);
 3     for (i = 0 ; i < len ; i ++)
 4     {
 5         if (S[i]=='(')  //入栈
 6         {
 7             l ++;
 8         }
 9         else            //出栈
10         {
11             if (l == 0)
12             {
13                 res ++; //栈为空,丢弃数+1
14             }
15             else
16                 l --;   //栈不为空,出栈
17         }
18     }
19     return res+l;   //栈中数量+丢弃栈
20 }

转载于:https://www.cnblogs.com/mind000761/p/10137941.html

[LeedCode]921. 使括号有效的最少添加相关推荐

  1. LeetCode 921. 使括号有效的最少添加(栈)

    1. 题目 给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效. 从形式上讲,只有满足下面几点之一,括号字 ...

  2. 使括号有效的最少添加

    使括号有效的最少添加 给定一个由(和)括号组成的字符串S,我们需要添加最少的括号(或是),可以在任何位置,以使得到的括号字符串有效. 从形式上讲,只有满足下面几点之一,括号字符串才是有效的: 它是一个 ...

  3. [Swift]LeetCode921.使括号有效的最少添加 | Minimum Add to Make Parentheses Valid

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  4. 2022-3-25 Leetcode 921.使括号有效

    第一版,我还是 too young,too naive class Solution {public:int minAddToMakeValid(string s) {int deep = 0;for ...

  5. LeetCode 1674. 使数组互补的最少操作次数(差分思想)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个长度为 偶数 n 的整数数组 nums 和一个整数 limit . 每一次操作,你可以将 nums 中的任何整数替换为 1 到 limit 之间的 ...

  6. LeetCode 1653. 使字符串平衡的最少删除次数(DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 s ,它仅包含字符 'a' 和 'b'​​​​ . 你可以删除 s 中任意数目的字符,使得 s 平衡 . 我们称 s 平衡的 当不存在下标 ...

  7. LeetCode 1568. 使陆地分离的最少天数(DFS)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个由若干 0 和 1 组成的二维网格 grid ,其中 0 表示水,而 1 表示陆地. 岛屿由水平方向或竖直方向上相邻的 1 (陆地)连接形成. 如 ...

  8. amazon alexa_亚马逊使向自定义Alexa Skills添加声音变得更加容易

    amazon alexa by Terren Peterson 由Terren Peterson 亚马逊使向自定义Alexa Skills添加声音变得更加容易 (Amazon has made it ...

  9. leetcode1568. 使陆地分离的最少天数(Python3、c++)

    文章目录 leetcode1568. 使陆地分离的最少天数 方法:并查集 思路: 并查集: 求割点: 代码: Python3: cpp: 结果: leetcode1568. 使陆地分离的最少天数 给你 ...

最新文章

  1. js获取网页的各种高度
  2. LIST_VIEW_和LVITEM用法
  3. Tomcat 的运行机制
  4. 黑马程序员-----集合框架类(四) 高级for循环、方法的可变参数及静态导入
  5. Debian操作系统的源配置信息详解--Source.list配置文件详解
  6. C#判断对象是不是数组
  7. 管家婆A8 TOP V9.5.1版本安装需知!
  8. 泛微mysql密码_泛微OA 数据库维护笔记(e-cology)
  9. Ubuntu 20.04 双系统安装过程(新手)
  10. 内网IP使用Https小记
  11. Java中的锁有哪些?
  12. Redis缓存雪崩/穿透/击穿
  13. oracle锁表语句执行提示无法终止当前对话_ORACLE LOCK TABLE 无法锁定表?
  14. leetcode 17. 电话号码的字母组合
  15. C++基础编程----6.2函数
  16. 初学者:java练习题———含答案-------类与对象(2)
  17. -bash: mysql: command not found 解决办法
  18. 21个免费的UI界面设计工具、资源及网站
  19. 伪静态网站安全攻防如何理解
  20. arcgis多面体要素转面_【干货】ArcGIS 9.3线转面的方法

热门文章

  1. git 连接gitee时报错 Auth error: Access deined: authorize failure
  2. 【牛客 - 330C】Applese 走迷宫(bfs)
  3. 【POJ - 2785】4 Values whose Sum is 0 (二分,折半枚举)
  4. 【CodeForces - 569C】Primes or Palindromes? (思维,分析范围,暴力枚举判断)
  5. 【sdut 1751】 区间覆盖问题
  6. 函授本科统考计算机考试时间,函授2006级计算机、机电本科第一学期考试时间安排.doc...
  7. android adb 开机广播,Android中常用的adb指令
  8. java selector 源码_Java NIO核心组件-Selector和Channel
  9. oracle内存锁,Oracle OCP之硬解析在共享池中获取内存锁的过程
  10. java生成world文件_HelloWorld.java文件如何创建?