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

1. 题目

给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效

从形式上讲,只有满足下面几点之一,括号字符串才是有效的:

  • 它是一个空字符串,或者
  • 它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者
  • 它可以被写作 (A),其中 A 是有效字符串。

给定一个括号字符串,返回为使结果字符串有效而必须添加的最少括号数

示例 1:
输入:"())"
输出:1示例 2:
输入:"((("
输出:3示例 3:
输入:"()"
输出:0示例 4:
输入:"()))(("
输出:4提示:
S.length <= 1000
S 只包含 '('')' 字符。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-add-to-make-parentheses-valid
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

类似题目:LeetCode 5470. 平衡括号字符串的最少插入次数 medium

  • 用栈来匹配,未匹配的在栈内留下来
class Solution {
public:int minAddToMakeValid(string S) {stack<char> stk;for(int i = 0; i < S.size(); ++i){if(stk.empty())stk.push(S[i]);else{if(stk.top()=='(' && S[i]==')')stk.pop();elsestk.push(S[i]);}}return stk.size();//未匹配的字符数}
};

or
用左右括号计数来表示

class Solution {
public:int minAddToMakeValid(string S) {int left = 0;int right = 0;for(char &c:S){if(c=='(') left++;else{if(left>0) //右括号可以与之匹配left--;else //右括号没有相应的左括号匹配right++;}   }return left+right;}
};

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

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

相关文章

Shlwapi介绍

Windows中有一个Shlwapi.dll文件&#xff0c;包含了大量的Windows字符串处理方法&#xff0c;这些方法&#xff0c;在通常的程序应用中&#xff0c;经常会用到&#xff0c;有一部分处理方法&#xff0c;在CRuntime中也存在&#xff0c;但不方便使用。有一部分函数&#xff0c;也…

java权限框架_Java高级工程师必备技术栈-由浅入深掌握Shiro权限框架

权限系统在任何一个系统中都存在&#xff0c;随着分布式系统的大行其道&#xff0c;权限系统也趋向服务化&#xff0c;对于一个高级工程师来说&#xff0c;权限系统的设计是必不可少需要掌握的技术栈Apache Shiro™是一个功能强大且易于使用的Java安全框架&#xff0c;用于执行…

【RippleNet】(一)preprocessor.py【未完】

首先读入的文件有movie和book和news三种&#xff0c;肯定会选择一种进行解析&#xff01; 下面我们以movies作为样例分析&#xff1a; 本论文中使用的数据集是movie-1m ratings.dat&#xff1a; 分别是用户&#xff1a;&#xff1a;电影&#xff1a;&#xff1a;评分&#xff…

LeetCode 961. 重复 N 次的元素

1. 题目 在大小为 2N 的数组 A 中有 N1 个不同的元素&#xff0c;其中有一个元素重复了 N 次。 返回重复了 N 次的那个元素。 示例 1&#xff1a; 输入&#xff1a;[1,2,3,3] 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1a;[2,1,2,5,3,2] 输出&#xff1a;2示例 3&a…

日照华软游戏开发价格_开发区将是未来刚需人群的首选!

开发区真的只是备胎吗?想必在日照人的心目中一定有一张区域排行榜&#xff0c;而排在榜首的一定是东城片区&#xff0c;这是无可厚非的&#xff0c;毕竟东城片区的各项资源是全市其他区域无法抗衡的&#xff0c;然后西城片区、山海天片区、石臼片区……紧随其后&#xff0c;而…

知识图谱论文阅读(十六)【WWW2019】Knowledge Graph Convolutional Networks for Recommender

题目&#xff1a; KGCN 论文链接&#xff1a; 代码链接&#xff1a;https://github.com/hwwang55/KGCN 想法 高阶的意思就是multi-hop的意思注意是从外向里聚合的&#xff0c;第h-1跳是外侧&#xff0c;第h跳是里侧&#xff01; 所以才有聚合邻居和本身之说 创新 摘要 为了…

LeetCode 925. 长按键入(双指针)

1. 题目 你的朋友正在使用键盘输入他的名字 name。 偶尔&#xff0c;在键入字符 c 时&#xff0c;按键可能会被长按&#xff0c;而字符可能被输入 1 次或多次。 你将会检查键盘输入的字符 typed。 如果它对应的可能是你的朋友的名字&#xff08;其中一些字符可能被长按&#…

java 拉取收件箱邮件源码_邮件提醒系统:新邮件识别

最近在做邮件提醒抄送企业微信消息系统&#xff0c;就目前而言&#xff0c;无论是pop3还是imap都没有一个好的方法只接收新邮件&#xff0c;基本只能依靠收件箱列表message自行判断&#xff0c;下面给出几种思路并作对比。//收件箱 folder store.getFolder("INBOX")…

Jquery 操作select总结

//遍历option和添加、移除optionfunction changeShipMethod(shipping){var len $("select[nameISHIPTYPE] option").lengthif(shipping.value ! "CA"){$("select[nameISHIPTYPE] option").each(function(){if($(this).val() 111){$(this).remo…

知识图谱论文阅读(十七)【WWW2021】DGCN: Diversified Recommendation with Graph Convolutional Networks

本论文是很明显是基于KGCN的&#xff01; 如果不懂KGCN&#xff0c;可以看我上一篇博文 论文题目&#xff1a; DGCN: Diversified Recommendation with Graph Convolutional Networks 论文链接&#xff1a; 论文代码&#xff1a; https://github.com/tsinghua-fib-lab/DGCN 想…

PKU-3624

代码 //0-1背包问题 如果不使用循环数组&#xff0c;空间越界。#include <stdio.h>intmain(){ intn, v, i, j; intw[3403], p[3403]; intf[12881]; scanf("%d %d", &n, &v); for(i 1; i <n; i) scanf("%d %d", &a…

LeetCode 1309. 解码字母到整数映射

1. 题目 给你一个字符串 s&#xff0c;它由数字&#xff08;‘0’ - ‘9’&#xff09;和 ‘#’ 组成。 我们希望按下述规则将 s 映射为一些小写英文字符&#xff1a; 字符&#xff08;a - i&#xff09;分别用&#xff08;1 - 9&#xff09;表示。 字符&#xff08;j - z&am…

redis如何设置定时过期_redis补充6之Redis 设置过期时间

一般情况下&#xff0c;我们设置保存的缓存数据的时候都会设置一个过期时间。Redis 中有个设置时间过期的功能&#xff0c;即对存储在 Redis 数据库中的值可以设置一个过期时间。作为一个缓存数据库&#xff0c;这是非常实用的。如我们一般项目中的 token 或者一些登录信息&…

知识图谱论文阅读(十八)【KDD2019】AKUPM: Attention-Enhanced Knowledge-Aware User Preference Model for Recommend

论文题目&#xff1a; AKUPM: Attention-Enhanced Knowledge-Aware User Preference Model for Recommendation 论文代码&#xff1a; 论文链接&#xff1a; 想法 什么叫折射到关系空间&#xff1f; &#xff08;添加了一个关系矩阵&#xff0c;但是关系矩阵为啥要加&#xf…

LeetCode 1304. 和为零的N个唯一整数

1. 题目 给你一个整数 n&#xff0c;请你返回 任意 一个由 n 个 各不相同 的整数组成的数组&#xff0c;并且这 n 个数相加和为 0 。 示例 1&#xff1a; 输入&#xff1a;n 5 输出&#xff1a;[-7,-1,1,3,4] 解释&#xff1a;这些数组也是正确的 [-5,-1,1,2,3]&#xff0c;…

vue做混合式app_Vue+原生App混合开发手记#1

项目的大致需求就是做一个App&#xff0c;里面集成各种功能供用户使用&#xff0c;其中涉及到很多Vue的使用方法&#xff0c;单独总结太麻烦&#xff0c;所以通过这几篇笔记来梳理一下。原型图如下&#xff1a;路由配置主界面会用到一些原生App方法&#xff0c;比如验证用户身份…

Android入门第八篇之GridView(九宫图)

GridView跟ListView都是比较常用的多控件布局&#xff0c;而GridView更是实现九宫图的首选!本文就是介绍如何使用GridView实现九宫图。GridView的用法很多&#xff0c;网上介绍最多的方法就是自己实现一个ImageAdapter继承BaseAdapter&#xff0c;再供GridView使用&#xff0c;…

(十九)【AAAI2021】Knowledge-Enhanced Hierarchical Graph Transformer Network for Multi-Behavior Recommend

题目&#xff1a; Knowledge-Enhanced Hierarchical Graph Transformer Network for Multi-Behavior Recommendation 论文链接&#xff1a; 代码链接&#xff1a;https://github.com/akaxlh/KHGT 论文 时间戳放入到关系中&#xff0c;可以参考这篇《Heterogeneous graph trans…

LeetCode 1295. 统计位数为偶数的数字

1. 题目 给你一个整数数组 nums&#xff0c;请你返回其中位数为 偶数 的数字的个数。 示例 1&#xff1a; 输入&#xff1a;nums [12,345,2,6,7896] 输出&#xff1a;2 解释&#xff1a; 12 是 2 位数字&#xff08;位数为偶数&#xff09; 345 是 3 位数字&#xff08;位数…

pymysql保存数组_pymysql 读取大数据内存卡死的解决方案

背景&#xff1a;目前表中只有5G(后期持续增长)&#xff0c;但是其中一个字段(以下称为detail字段)存了2M(不一定2M&#xff0c;部分为0&#xff0c;平均下来就是2M)&#xff0c;字段中存的是一个数组&#xff0c;数组中存N个json数据。这个字段如下&#xff1a;[{"A"…