【LeetCode】使括号有效的最少添加

题目链接: 921. 使括号有效的最少添加 - 力扣(LeetCode)

对于一个只有()组合的括号字符串,如果想要这个字符串是有效的括号对,找出最少需要插入多少个括号

括号离不开栈,栈可以消除有效的括号,先用栈将左括号装起来,遇到右括号并且栈非空就弹栈,如果遇到右括号栈空就计数,说明需要插入左括号,完事之后栈里面的元素就都是左括号,都计数,因为都需要加上右括号

class Solution {
public:int minAddToMakeValid(string s) {int ans = 0;stack<char> match;for (auto c : s) {if (c == '(')match.push(c);else if (match.empty())++ans;else if (match.top() == '(' && c == ')')match.pop();}return ans + match.size();}
};

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

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

相关文章

Java同步与线程安全,同步方法、同步块和java.util.concurrent包的使用

Java的同步与线程安全是并发编程中至关重要的部分。在多线程环境下&#xff0c;确保数据的一致性和避免竞态条件&#xff08;race condition&#xff09;是程序设计的关键。 一、Java中的线程安全 线程安全&#xff08;Thread Safety&#xff09;是指多线程环境下&#xff0c…

C++中的注释作用

程序的注释是解释性语句&#xff0c;您可以在 C 代码中包含注释&#xff0c;这将提高源代码的可读性。所有的编程语言都允许某种形式的注释。 C 支持单行注释和多行注释。注释中的所有字符会被 C 编译器忽略。 C 注释一般有两种&#xff1a; // - 一般用于单行注释。 / ...…

【耗时八个小时】机器学习过拟合和欠拟合!看这一篇文章就够了

.. 纯. .干 货 . . . . 在机器学习中&#xff0c;有一项非常重要的概念&#xff0c;那就是&#xff1a;过拟合&#xff08;Overfitting&#xff09;和欠拟合&#xff08;Underfitting&#xff09;。 它们涉及到机器学习中常见的两种模型性能问题&#xff0c;分别表示模型在训练…

[modern c++] 使用shared_mutex , shared_lock完成读写锁,Need C++ 17

前言&#xff1a; C 17开始&#xff0c;引入了两个新的同步组件&#xff0c; shared_mutex 和 shared_lock &#xff0c;这两个组件的一个典型使用案例就是实现读写锁。 原语&#xff1a; shared_mutex &#xff0c; 一个提供让多个线程都可以同时获取能力的mutex。 shared_…

一键开启:盲盒小程序里的梦幻奇遇

在繁忙的都市生活中&#xff0c;每个人心中都藏着一个关于奇遇的梦想。如今&#xff0c;我们为您精心打造了一款盲盒小程序——“梦幻奇遇”&#xff0c;只需一键开启&#xff0c;就能带您走进一个充满无限惊喜和梦幻色彩的奇幻世界。 一、神秘盲盒&#xff0c;惊喜连连 “梦幻…

gitlab之cicd的gitlab-runner集成-dockerfile构建环境

目录 概述离线资源docker-compose问题 docker-compose问题1问题2 gitlab-runner集成gitlab 概述 cicd引文目录是想通过dockerfile构建 maven、jdk、docker环境的 gitlab-runner 运行环境。但docker最后测试的时候有点问题&#xff0c;且最后使用 kubectl 时有麻烦&#xff0c;所…

python--面向对象-文件读写-异常

一、继承 定义一个类时&#xff0c;需要使用另外一个类的方法或属性&#xff0c;就可以通过继承实现 object是Python的顶级类&#xff0c;创建类是会自动继承&#xff0c;就拥有object中的方法 定义格式 # 类的定义 # 旧式类定义 一般在定义单个类时使用 class 类名:name N…

Spring Boot 使用自定义注解和自定义线程池实现异步日志记录

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

.NET集成DeveloperSharp操作SqlServer、MySql等数据库

&#x1f3c6;作者&#xff1a;科技、互联网行业优质创作者 &#x1f3c6;专注领域&#xff1a;.Net技术、软件架构、人工智能、数字化转型、DeveloperSharp、微服务、工业互联网、智能制造 &#x1f3c6;欢迎关注我&#xff08;Net数字智慧化基地&#xff09;&#xff0c;里面…

在Linux系统中程序是如何执行的?

在Linux系统中&#xff0c;程序的执行是一个复杂而精细的过程&#xff0c;涉及多个步骤。 1.进程创建 在Linux中&#xff0c;进程的创建&#xff0c;除了第一个进程&#xff08;0号进程&#xff09;是通过硬编码创建&#xff0c;其他所有进程通常都是通过fork()系统调用来实现…

力扣2134.最少交换次数得到连续的1(断环成链)

力扣2134.最少交换次数得到连续的1(断环成链) 最终一定是所有1的个数(长度) 的区间 所以求所有1的和 用和作为k作滑动窗口将环断成长度为nsum-1的链 class Solution {public:int minSwaps(vector<int>& nums) {int sum accumulate(nums.begin(),nums.end(),0);in…

如何保持气膜场馆内部空气新鲜—轻空间

气膜建筑作为现代建筑的一种新兴形式&#xff0c;以其独特的优势和设计受到了广泛欢迎。然而&#xff0c;保持气膜内部空气新鲜是一个必须解决的问题。我们通过配备先进的新风系统&#xff0c;提供了高效的解决方案。 新风系统的工作原理 气膜建筑内部空气的新鲜度主要依靠其配…

在C++中,NULL和nullptr有什么区别?

在C11之前&#xff0c;一般使用NULL代表空指针。 NULL的定义在C和C中不同&#xff0c;而且C和C针对0和指针之间的运算规则也存在差异&#xff1a; C03标准&#xff1a;空指针常量是整数类型的整型常量表达式右值&#xff0c;其值为零。空指针常量可以转换为指针类型&#xff…

【vscode-快捷键 一键JSON格式化】

网上有很多JSON格式化工具&#xff0c;也有很多好用的在线json格式化工具。但是其实Vscode里面的可以直接格式化JSON&#xff0c;这里分享一个我常用的小插件 Prettify JSON 未格式化的JSON数据 召唤出命令行&#xff0c;输入prettify JSON 即可! ✿✿ヽ(▽)ノ✿

算法题:Java求数组中最大的值

采用分而治之&#xff08;二分法&#xff09;的思想去求解 分而治之&#xff1a;分而治之的思想可以用于解决很多问题&#xff0c;大概的思路就是把一个比较大的复杂的问题切分成小的块&#xff0c;然后分头去解决他们&#xff0c;最后再把结果合并起来&#xff0c;就是“分而治…

C++中的string类详解

在C中&#xff0c;字符串是一个非常重要的数据类型&#xff0c;用于存储和处理文本数据。C标准库提供了std::string类&#xff0c;它是一个模板类&#xff0c;专门用于处理字符串。std::string类提供了丰富的成员函数和操作符重载&#xff0c;使得字符串操作变得简单而高效。本…

【JAVA】把结果保留两位小数的方法

在Java中&#xff0c;保留两位小数可以使用几种不同的方法&#xff0c;下面将详细解释并给出每种方法的例子&#xff1a; 1.使用DecimalFormat类 DecimalFormat是java.text包中的一个类&#xff0c;专门用于格式化数字&#xff0c;包括保留小数点后指定的位数。下面是使用Dec…

git介绍、安装、配置

文章目录 1. GIT介绍2. 使用GIT的好处3. GIT 安装4. GIT 配置4.1 GIT 初始化设置、命令别名设置4.2 如果终端安装了oh-my-zsh&#xff0c;会带一堆git命令别名4.3 GIT配置文件介绍4.3.1 Linux、Mac OS系统4.3.2 windows系统 5. git设置远程仓库账号密码(拉取、上传代码不用输入…

快速理解 Node.js 版本差异:3 分钟指南

Node.js 是一个广泛使用的 JavaScript 运行时环境&#xff0c;允许开发者在服务器端运行 JavaScript 代码。随着技术的发展&#xff0c;Node.js 不断推出新版本&#xff0c;引入新特性和改进。了解不同版本之间的差异对于开发者来说至关重要。以下是一个快速指南&#xff0c;帮…

Unity3D DOTS 10W GPU Intancing 动画与合批优化详解

前言 Unity3D DOTS&#xff08;Data-Oriented Technology Stack&#xff09;是Unity引擎的一个新的技本堆栈&#xff0c;旨在提高游戏的性能和效率。其中的GPU Instancing和合批技术是其重要的优化手段之一。本文将详细介绍Unity3D DOTS中的10W GPU Instancing技术以及动画与合…