[LeedCode]921. 使括号有效的最少添加

题目描述:

给定一个由 '('')' 括号组成的字符串 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450339.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

abstract的一些用法

&#xfeff;&#xfeff;abstract&#xff08;抽象&#xff09;修饰符&#xff0c;可以修饰类和方法 1&#xff0c;abstract修饰类&#xff0c;会使这个类成为一个抽象类&#xff0c;这个类将不能生成对象实例&#xff0c;但可以做为对象变量声明的类型&#xff0c;也就是编译…

github 如何设置项目的语言显示

github 会根据一个项目文件最多的那个种类的文件显示为对应的语言项目 如果想让整个项目显示为 HTML 项目, 需要进行以下步骤的设置 1.在根目录下创建一个文件 .gitattributescreate .gitattributes2.在 .gitattributes 内编辑以下内容&#xff1a; *.js linguist-languageHTML…

C++提高进阶,你知道多少?

C从零开始 ——何谓编程 引言 曾经有些人问我问题&#xff0c;问得都是一些很基础的问题&#xff0c;但这些人却已经能使用VC编一个对话框界面来进行必要的操作或者是文档/视界面来实时接收端口数据并动态显示曲线&#xff08;还使用了多线程技术&#xff09;&#xff0c;却连…

POJ 3352 Road Construction ; POJ 3177 Redundant Paths (双联通)

这两题好像是一样的&#xff0c;就是3177要去掉重边。 但是为什么要去重边呢&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;我认为如果有重边的话&#xff0c;应该也要考虑在内才是。 这两题我用了求割边&#xff0c;在去掉割边&#xff0c;用DFS缩…

postman界面变成了左右结构怎么办

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 在左上角 file -- settongs中设置一下&#xff1a;

面向对象阶段个人总结

&#xfeff;&#xfeff;面向对象阶段的个人总结 我个人对面相对向的总结。我想到了我认为比较好的方法&#xff0c;就是对照每次学习一个大模块的前的章节目录进行回顾总结&#xff0c;比如我们这阶段学习是面向对象的课程&#xff0c;下面我就来按照章节 目录进行一个系统…

1.springboot:入门程序

一、Spring Boot 简介 官网英文&#xff1a; Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”. We take an opinionated view of the Spring platform and third-party libraries so you can get st…

2018.12.18运算符,分支结构(循环),异常处理,函数

1复习 <!DOCTYPE html><html><head> <meta charset"UTF-8"> <title>复习预习</title> <style> .b { /* 作用域: {}产生的, {作用域开始的标识, }作用域结束的标识 */ /*出现在作用域中的所有内…

javax.ws.rs.NotSupportedException: Cannot consume content type

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错如题&#xff1a;javax.ws.rs.NotSupportedException: Cannot consume content type 解决&#xff1a;使用postman发送 post 请求访…

java异常预习

java中的异常捕获结构有try&#xff0c;catch&#xff0c;finally三部分组成。其中&#xff0c;try语句块存放的是可能发生异常的java语句&#xff1b;catch程序块在try语句块之后&#xff0c;用来激发被捕获的异常&#xff1b;finally语句块是异常处理结构的最后执行部分&…

【亲测有效】Kali Linux无法安装网易云音乐的解决方案

问题描述 由于 Kali Linux 的内核是基于 Debian 的&#xff0c;我们在安装网易云音乐的时候更偏向于选择安装网易云音乐 v1.1.0 deepin15&#xff08;64位&#xff09; 的包&#xff0c;可是我发现在安装过程中&#xff0c;无法定位 libqcef1 软件包&#xff0c;对于很多钟爱网…

C/C++函数名修饰约定

函数名字修饰&#xff08;Decorated Name&#xff09;方式 函数的名字修饰&#xff08;Decorated Name&#xff09;就是编译器在编译期间创建的一个字符串&#xff0c;用来指明函数的定义或原型。 正在装载数据…… LINK程序或其他工具有时需要指定函数的名字修饰来定位函数的…

设计模式中类之间的关系

设计模式 个人感觉设计模式是程序员的核心技能 &#xff0c;然后看了一些设计模式的书&#xff0c;都是讲设计模式的一些理论&#xff0c;放在实现上都有点模糊&#xff0c;后来图书馆看到一本《设计模式的艺术》&#xff0c;感觉很不错&#xff0c;有一些比较具体且容易理解的…

如何查看jar包的版本号?

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 jar包根目录里的META-INF目录下的MANIFEST.MF文件里一般有会记录版本信息&#xff0c;可以到这个文件里查看 打开Java的JAR文件我们经…

JAVA中的toString()方法的用法

toString是Object类的方法&#xff0c;所有类都从Object类继承。如果你定义的类没有覆盖toString方法&#xff0c;则对象在调用toString方法时用的是Object类toString方法&#xff0c;返回的是“类名hashcode". System.out.println(obj)在参数是一个对象时&#xff0c;会首…

kotlin使用spring data jpa(一)

2019独角兽企业重金招聘Python工程师标准>>> 简单查询 spring data jpa是spring全家桶成员之一&#xff0c;用于操作各种数据库&#xff0c;下面写一个查询订单的简单示例 引入sqlserver驱动包及jpa所需包implementation(org.springframework.boot:spring-boot-star…

VC的函数修饰名

VC 中的修饰名(Decoration name) “C”或者“C”函数在内部&#xff08;编译和链接&#xff09;通过修饰名识别。修饰名是编译器在编译函数定义或者原型时生成的字 符串。有些情况下使用函数的修饰名是必要的&#xff0c;如在模块定义文件里头指定输出“C”重载函数、构造函数、…

You can‘t specify target table ‘XXX‘ for update in FROM clause

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错如题&#xff0c;意思大致是&#xff1a;在一条 sql 语句中不能先查出来部分内容&#xff0c;再同时又对当前表作修改。 解决方法&…

牛客网——最简真分数

题目描述 给出n个正整数&#xff0c;任取两个数分别作为分子和分母组成最简真分数&#xff0c;编程求共有几个这样的组合。输入描述: 每组包含n&#xff08;n<600&#xff09;和n个不同的整数&#xff0c;整数大于1且小于等于1000。 输出描述: 每行输出最简真分数组合的个数…

csvn(apache+svn)管理工具搭建

系统环境&#xff1a;centos7.4一、服务端下载这个文件并解压&#xff08;如果打不开&#xff0c;请下方留言&#xff09;https://pan.baidu.com/s/1miwdBc81、安装jdk,上传到服务器上&#xff0c;解压[rootslave2 opt]# tar -zxvf jdk-8u91-linux-x64.gz[rootslave2 opt]# vim…