LeetCode 1021. 删除最外层的括号(栈)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

题目链接

示例 1:输入:"(()())(())"
输出:"()()()"
解释:
输入字符串为 "(()())(())",原语化分解得到 "(()())" + "(())",
删除每个部分中的最外层括号后得到 "()()" + "()" = "()()()"。
示例 2:输入:"(()())(())(()(()))"
输出:"()()()()(())"
解释:
输入字符串为 "(()())(())(()(()))",原语化分解得到 "(()())" + "(())" + "(()(()))",
删除每隔部分中的最外层括号后得到 "()()" + "()" + "()(())" = "()()()()(())"。
示例 3:输入:"()()"
输出:""
解释:
输入字符串为 "()()",原语化分解得到 "()" + "()",
删除每个部分中的最外层括号后得到 "" + "" = ""。提示:S.length <= 10000
S[i] 为 "(" 或 ")"
S 是一个有效括号字符串来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-outermost-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 跳过i = 0的符号‘(’(不入栈)
  • 遇到( 入栈,并添加( 至输出字符串
  • 遇到 )且栈不为空,说明匹配,弹栈,并添加 )到输出字符串
  • 遇到 )且栈为空,说明到了外层括号,跳过1个外层括号,继续以上过程
    在这里插入图片描述
class Solution {
public:string removeOuterParentheses(string S) {stack<char> stk;string innerStr("");for(int i = 1; i < S.size(); ++i){//跳过i=0的外层括号(if(S[i] == ')'){if(stk.empty())//不能匹配,说明是外层{i += 1;//跳过外层continue;}else{innerStr.push_back(S[i]);stk.pop();}}else// S[i] == '('{stk.push(S[i]);innerStr.push_back(S[i]);}}return innerStr;}
};

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

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

相关文章

仅使用numpy从头开始实现神经网络,包括反向传播公式推导过程

仅使用numpy从头开始实现神经网络,包括反向传播公式推导过程&#xff1a; https://www.ctolib.com/yizt-numpy_neural_network.html

JVM CPU Profiler技术原理及源码深度解析

研发人员在遇到线上报警或需要优化系统性能时&#xff0c;常常需要分析程序运行行为和性能瓶颈。Profiling技术是一种在应用运行时收集程序相关信息的动态分析手段&#xff0c;常用的JVM Profiler可以从多个方面对程序进行动态分析&#xff0c;如CPU、Memory、Thread、Classes、…

DGL实现同构/异构图卷积模型

同构图卷积 from time import time import numpy as np import dgl import torch import torch.nn as nn import torch.nn.functional as F# 模型 class TwoLayerModel(nn.Module):def __init__(self):super().__init__()# gcnself.conv1 dgl.nn.GraphConv(256, 128)self.con…

Facebook提出生成式实体链接、文档检索,大幅刷新SOTA!

文 | 花小花Posy导言最近ICLR的rebutal 前后分数对比出来了&#xff0c;很多评委都改了分数&#xff0c;有改多的&#xff0c;也有改少的。今天给大家介绍的这篇高分论文竟然在rebuttal前后都保持高分&#xff0c;证明评委们对它的认可程度是很高的。实体检索任务的定义是&…

详解TCP协议的服务特点以及连接建立与终止的过程(俗称三次握手四次挥手)

转载请附本文的链接地址&#xff1a;http://blog.csdn.net/sahadev_/article/details/50780825 &#xff0c;谢谢。 tcp/ip技术常常会在我们面试的时候出现&#xff0c;很多公司也要求需要掌握tcp/ip&#xff0c;socket等&#xff0c;所以掌握这项技术会为我们面试的时候加分。…

论文浅尝 | 知识库问答中关系检测的学习表示映射

论文笔记整理&#xff1a;吴涵&#xff0c;天津大学硕士&#xff0c;研究方向&#xff1a;自然语言处理。链接&#xff1a;Paper: https://arxiv.org/pdf/1907.07328v1.pdfCode: https://github.com/wudapeng268/KBQA-Adapter引入在关系检测任务中&#xff0c;对于训练数据中已…

LeetCode 1175. 质数排列

文章目录1. 题目2. 解题1. 题目 请你帮忙给从 1 到 n 的数设计排列方案&#xff0c;使得所有的「质数」都应该被放在「质数索引」&#xff08;索引从 1 开始&#xff09;上&#xff1b;你需要返回可能的方案总数。 让我们一起来回顾一下「质数」&#xff1a;质数一定是大于 1…

CV模型,全目标检测等

CV视频全目标检测&#xff1a;https://www.bilibili.com/video/BV1zi4y137Xy?p63

ICLR最高分论文揭秘模型泛化,GNN是潜力股

文 | Jerry Qiu编 | 小轶我们都知道&#xff0c;人类在很多任务上都可以很好地完成“外推”&#xff0c;例如&#xff1a;啊不——我是说——例如&#xff0c;我们学会两位数的加减乘除后&#xff0c;就可以轻松将其推广至任意大整数的四则运算&#xff1a;从数学的角度来讲&am…

Android系统原生应用解析之桌面闹钟及相关原理应用之时钟任务的应用(一)

前段时间我一个朋友在面试回来问我&#xff1a;那个公司要5天之内完成一个项目&#xff0c;功能包括每天早上6点开始执行定时任务&#xff0c;大批量图片上传&#xff0c;大批量数据库同步。我心想&#xff0c;后两个功能还好说&#xff0c;可就是每天早上6点开始执行的这种定时…

PyTorch 读取大数据

PyTorch 读取大数据 数据量太大&#xff0c;必须分批从磁盘加载&#xff0c;下面是单机单卡的思路&#xff1a; from torch.utils.data import Dataset, DataLoader import torchclass PretrainData(Dataset):def __init__(self):假设data是个数据量很大的文件&#xff0c;每…

配送交付时间轻量级预估实践

1. 背景 可能很多同学都不知道&#xff0c;从打开美团App点一份外卖开始&#xff0c;然后在半小时内就可以从骑手小哥手中拿到温热的饭菜&#xff0c;这中间涉及的环节有多么复杂。而美团配送技术团队的核心任务&#xff0c;就是将每天来自祖国各地的数千万份订单&#xff0c;迅…

论文浅尝 | 面向 cQA 的跨语言问题检索方法

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生&#xff0c;研究方向为知识库问答。来源&#xff1a;WWW2019链接&#xff1a;https://dl.acm.org/citation.cfm?doid3308558.3313502本文提出了一种面向cQA的跨语言问题检索方法&#xff0c;旨在对于给定的问题检索…

揭秘Python并发编程——协程

原文链接&#xff1a;https://baijiahao.baidu.com/s?id1649450510185145678&wfrspider&forpc Python并发编程一直是进阶当中不可跨越的一道坎&#xff0c;其中包括进程、线程、协程&#xff0c;今天我们就来聊一聊协程。协程的定义很简单&#xff0c;从头到尾只有一条…

LeetCode 804. 唯一摩尔斯密码词(哈希+set)

文章目录1. 题目2. 解题1. 题目 国际摩尔斯密码定义一种标准编码方式&#xff0c;将每个字母对应于一个由一系列点和短线组成的字符串&#xff0c; 比如: “a” 对应 “.-”, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。 为了方便&#xff0c;所有26个英文字母对应摩尔…

Android系统原生应用解析之桌面闹钟及相关原理应用之时钟任务的应用(二)

这篇文章主要针对http://android.xsoftlab.net/training/scheduling/alarms.html#tradeoffs中的Scheduling Repeating Alarms一文进行大体翻译&#xff1a; Alarms(基于AlarmManager类)可以使你的应用在正常的生命周期之外执行基于时间的任务。举个例子&#xff0c;你可以使用…

Dataset、IterableDataset 读取大数据的思路

一、单进程读取数据 Dataset 在数据量很大&#xff0c;无法将全部数据加载到内存的情况下&#xff0c;可以在init中读出表数据行数&#xff0c;在__len__设置为长度返回&#xff0c;在__getitem__中根据idx读表&#xff0c;idx就可以表示读取的表的行数&#xff0c;一般在读表…

计算机基础晦涩难懂?那你是没看他的图解文章!

这年头&#xff0c;写计算机基础的人好之又少&#xff0c;能把枯燥无味的计算机基础写的通俗易懂的人更是少&#xff0c;而就有一位叫「小林coding」的公众号横空出世&#xff0c;真的是一股清流&#xff0c;他酷爱「图解」计算机基础文章&#xff0c;真正做到了图解&#xff0…

Litho在美团动态化方案MTFlexbox中的实践

1. MTFlexbox MTFlexbox是美团内部应用的非常成熟的一种跨平台动态化解决方案&#xff0c;它遵循了CSS3中提出的Flexbox规范来抹平多平台的差异。MTFlexbox适用于重展示、轻交互的业务场景&#xff0c;与现有HTML、React Native、Weex等跨平台方案相比&#xff0c;MTFlexbox具备…

服务器部署docker

服务器部署docker docker简介## 可以把docker是一个容器&#xff0c;可以让开发者将自己的项目部署到这个容器中&#xff0c;最常用的场景是将自己的后端项目部署到服务器的时候会将其打入docker镜像中&#xff0c;可以理解为一个开销更小的虚拟机。 docker好处## 可以轻易地让…