力扣每日一题:1190.反转每对括号间的子串 很容易理解的栈操作!

LeetCode 每日抑题 1190. 反转每对括号间的子串 1190. 反转每对括号间的子串 难度:中等 语言:java 题目内容 给出一个字符串 s(仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意,您的结果中 不应 包含任何括号。 解题思路 这题开始我看了半天开始没看明白题目什么意思,特别是示例2,我开始没明白,为啥love不用反转,后来看了半天才搞明白,最里面先反转,然后外面再反转,这也就是每日抑题的原因了,用示例2举个例子 (u(love)i) (uevoli) iloveu 大概是这么 阅读详情

1190.反转每对括号间的子串

https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-parentheses/

难度:中等

题目:

给出一个字符串 s(仅含有小写英文字母和括号)。

请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。

注意,您的结果中 不应 包含任何括号。

提示:

  • 0 <= s.length <= 2000
  • s 中只有小写英文字母和括号
  • 我们确保所有括号都是成对出现的

示例

示例 1:
输入:s = "(abcd)"
输出:"dcba"

示例 2:
输入:s = "(u(love)i)"
输出:"iloveu"

示例 3:
输入:s = "(ed(et(oc))el)"
输出:"leetcode"

示例 4:
输入:s = "a(bcdefghijkl(mno)p)q"
输出:"apmnolkjihgfedcbq"

分析

遇到类似括号等问题的,使用栈操作是最简单和最容易理解的方式。
维护一个栈,然后除了右括号,的字符都入栈。
当遇到右括号是开始循环出栈,加入一个临时列表,直到遇到左括号停止,并将左括号出栈。
在将临时表入栈,继续下一次操作...
最后将列表进行拼接,就可以完成所有代码了。

解题:

class Solution:
    def reverseParentheses(self, s):
        stack = []
        for i in s:
            if i != ')':
                stack.append(i)
                continue
            tmp = []
            while stack[-1] != '(':
                tmp.append(stack.pop())
            stack.pop()
            if tmp:
                stack.extend(tmp)
        return ''.join(stack)

欢迎关注我的公众号: 清风Python,带你每日学习Python算法刷题的同时,了解更多python小知识。

我的个人博客:https://qingfengpython.cn

力扣解题合集:https://github.com/BreezePython/AlgorithmMarkdown

华为机考LeetCode练习题库 剑指 Offer 59 - I. 滑动窗口的最大值。剑指 Offer 58 - II. 左旋转字符串。剑指 Offer 50. 第一个只出现一次的字符。剑指 Offer 22. 链表中倒数第k个节点。剑指 Offer 45. 把数组排成最小的数。剑指 Offer 03. 数组中重复的数字。剑指 Offer 13. 机器人的运动范围。105. 从前序与中序遍历序列构造二叉树。剑指 Offer 38. 字符串的排列。208. 实现 Trie (前缀树)974. 和可被 K 整除的子数组。 阅读详情

相关推荐

[记录一个bug]av_hwdevice_ctx_create出现Cannot allocate memory(附带库运行时路径)[已解决]

新写的程序里调用ffmpeg的av_hwdevice_ctx_create()这个函数,出现Cannot allocate memory。但是另个程序一样的代码,居然是成功的。 反复检查之后无果,就跳出去查了一下,看到一个问答: Have you tried to use ffmpg executables with the same libs that you using when you run the app? Have you tried to use ffmpg executables

熊猫Ben的博客 3587

【3】1190. 反转每对括号间的子串 python

class Solution: def reverseParentheses(self, s: str) -> str: stack=[""] for i in s: if i=="(": stack.append("") elif i==")": str = stack.pop() stack[-1] += str[.

qq_44243729的博客 1019

matlab2021a版本条件下安装spm

SPM (Statistical Parametric Mapping),中文名叫统计参数映射。统计参数映射是指构建和评估空间扩展的统计过程,用于测试关于功能成像数据的假设。这些想法已经在名为SPM的免费开源软件中得到了实例化。SPM软件包用于脑成像数据序列分析。目前的版本可以分析fMRI, PET, SPECT, EEG和MEG。 可能由于matlab版本更新的问题,按照之前教程所写的安装方法会出现错误,踩了一些坑,但好在最终解决了。。。 1、下载链接,如下 SPM12 Software -...

qq_42356925的博客 8407

1190 反转每对括号间的子串【python3】

力扣1190

Yorusimo的博客 332

面试中常考的数学题——截木棍、圆上取点、赛马、红蓝墨水,测试毒药、坐到正确座位问题

文章目录1.将一根木棒截成三段,问能够组成三角形的概率;2.在圆上任取三点,问能够组成锐角、直角、钝角三角形的概率;3.共有25匹马,找出最快的3匹,只有5个赛道,每次比赛只能得到5匹马的速度排序,最少需要多少次比赛;4 有两瓶红蓝墨水,体积一样,现在从红墨水中舀一勺加入蓝墨水中,搅拌均匀后,在从蓝墨水中舀一勺加到红墨水中,试问这两瓶墨水哪瓶纯度更高。 1.将一根木棒截成三段,问能够组成三角形的概率; 来源:https://blog.csdn.net/weixin_41245919/article/deta

weixin_41558411的博客 4907

头歌 操作系统 课堂练习2.1:外部中断 第2关:第一次时钟中断

将答案0x796c输入到workspace/mushixun/恢复点的地址.txt中的括号里即可,随后使用kill命令防止对第三关的环境造成影响。

Yinfrey的博客 6097

Leetcode-1190:反转每对括号间的子串

题目链接 https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-parentheses/ 题目 给出一个字符串s(仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意,您的结果中 不应 包含任何括号。 示例 示例 1: 输入:s = "(abcd)" 输出:"dcba" 示例 2: 输入:s = "(u(love)i)" 输出:"i.

道纪书生的博客 528

stm32项目实战(1)光敏电阻的介绍和使用

文章目录前言一、光敏电阻介绍二、cubeMX配置三、代码说明总结 前言 本篇文章我们讲带大家了解光敏电阻的使用 一、光敏电阻介绍 下面是4线光敏电阻实物图 产品接线说明: 1、VCC 接电源正极 3.3-5V 2、GND 接电源负极 3、DO TTL 开关信号输出 (配置为输出模式) 4、AO 模拟信号输出(ADC采样通道) 光敏电阻主要用于检测周围的光照强度,光照强度发生变化那么ADC采样的值也会发送变化。 二、cubeMX配置 简单的配置我们就不多说了主要是ADC采样的配置 这里我采用的是ADC1通道

m0_49476241的博客 1万+

力扣 1190. 反转每对括号间的子串 栈

https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-parentheses/ 思路:用栈来模拟,当遇到(((时,说明即将进入新的一层,所以需要将之前计算出的字符串curcurcur压入栈内,当遇到)))时,应当翻转当前的字符串curcurcur,然后弹出栈顶元素,把栈顶元素+翻转后的字符串当作curcurcur。 class Solution { public: string reverseParenth

xiji333的博客 292

C# Modbus协议全解析 万字长文|RTU/TCP/UDP完整实战(寄存器映射+多从站组网+NModbus4工业级代码)

你做C#工业上位机开发,Modbus协议是绕不开的终极核心,没有之一!Modbus是由施耐德在1979年发布的工业级串行通信协议,经过40余年的发展,已经成为工业自动化领域的通用标准协议—— 小到温湿度传感器、智能电表、小型PLC,大到变频器、伺服驱动器、DCS集散控制系统,99%的工业设备都原生支持Modbus协议(RTU/TCP二选一,多数全支持)。很多开发者觉得Modbus「知识点杂、协议分支多、组网难」,本质是只掌握了零散的读写代码,没吃透。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1064

本地Pycharm连接远程服务器详细配置过程(直接在本地使用服务器显卡,很棒)

相信很多人都遇见过这种情况:实验室成员使用同一台服务器,每个人拥有自己的独立账号,我们可以使用服务器更好的配置完成实验,毕竟自己哪有money拥有自己的3090呢。

NorthSmile的博客 4万+

[M栈] lc1190. 反转每对括号间的子串(栈+模拟)

文章目录1. 题目来源2. 题目解析 1. 题目来源 链接:1787. 使所有区间的异或结果为零 2. 题目解析 括号序列一般都是栈来处理。 用 str 来维护当前层所遍历到的字符串,栈来维护左括号与左括号之间的字符串。 思路: 左括号:就将本层的 str 加入到栈中,将 str 清空,接收下一层的字符串。入栈的字符串就等待对应的右括号来,再反转出栈。 右括号:将当前的 str 反转,因为当前是在本层的 str 已经匹配好了括号。再将栈顶的字符串加到 str 的左边,等待下一个右括号。 字符:直接加到 s

Y-puyu 的博客 236

AD-Copilot 论文解读:把“大模型看图”升级为“对照检验”的工业异常检测助手

本文提出AD-Copilot,一个面向工业异常检测的视觉语言助手,通过视觉上下文比较解决现有方法的不足。针对工业场景中多模态大模型表现不佳的问题,作者指出核心原因在于缺乏工业数据和比较能力不足。为此,论文提出三个关键贡献:构建Chat-AD数据集,设计Comparison Encoder显式建模图像差异,以及采用多阶段训练策略。实验表明,该方法在MMAD基准上达到82.29%准确率,定位任务提升3.35倍,并展现出良好的泛化能力。消融实验验证了比较模块的有效性,表明其成功源于高质量比较数据与显式比较模块的协

blanokvaffy的博客 334

【LeetCode每日一题】1190. 反转每对括号间的子串

【LeetCode每日一题】1190. 反转每对括号间的子串题目:给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结...

Francis的博客 474

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LeetCode 每日一题:1190. 反转每对括号间的子串

LeetCode 每日一题:1190. 反转每对括号间的子串 原题链接 分析: 将括号的反转理解为逆序的遍历括号,然后通过栈预处理出每个括号对应的括号的索引方便跳转。 代码: class Solution { public String reverseParentheses(String s) { Stack<Integer> st = new Stack<Integer>(); int[] book = new int[s.length()

w_weirdo的博客 213

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

leetcode每日一题5.26

1190. 反转每对括号间的子串 给出一个字符串 s(仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意,您的结果中 不应 包含任何括号。 示例 1: 输入:s = “(abcd)” 输出:“dcba” 示例 2: 输入:s = “(u(love)i)” 输出:“iloveu” 示例 3: 输入:s = “(ed(et(oc))el)” 输出:“leetcode” 示例 4: 输入:s = “a(bcdefghijkl(mno)p)q” 输出:

qq_43108252的博客 757

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

力扣1190/6/剑指Offer57-II/58-I/-II

1190. 反转每对括号间的子串 2021.5.26每日一题,终于来了个能做的 题目描述 给出一个字符串 s(仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意,您的结果中 不应 包含任何括号。 示例 1: 输入:s = "(abcd)" 输出:"dcba" 示例 2: 输入:s = "(u(love)i)" 输出:"iloveu" 示例 3: 输入:s = "(ed(et(oc))el)" 输出:"leetcode" 示例 4:

windyjcy的博客 172

数据结构学习(一)栈

1> 单调栈,记录数组/区间中的极值, 单调递增栈维护最小值、次小值… 单调递减栈维护最大值、次大值…题目说明实现1438. 绝对差不超过限制的最长连续子数组用单增栈和单减栈分别维护区间的最大最小值(队首),区间不满足要求时尝试从队首移除元素我的提交239. 滑动窗口最大值用单减栈维护窗口的最大值我的提交2> 单调栈,隐含历史信息题目说明实现456. 132 模式从右到左,单调递减栈,k记录上次被pop出去的值,一定有 栈顶 < k我的提交84. 柱状图中最大的矩形。

qq_42767993的博客 995

1190. 反转每对括号间的子串

一开始看到这题就感觉用递归or栈做,递归版本可能太久没写了,是不对的,还是向栈妥协了。 栈中记录的是左括号的下标,当你碰到右括号的时候,将栈顶的左括号和其匹配并出栈,将这两个下标之间的字符串全部翻转,不包括(),包括也没事。最后再遍历tmp之后将其取出()就行了 class Solution { public: string reverseParentheses(string s) { //递归翻转,写个函数,碰到(就进入,碰到)就退出 //将前面翻转好的,加上后..

白小飞 284

1190. 反转每对括号间的子串 ●●

1190. 反转每对括号间的子串 ●●、栈、预处理

chenyfan_blog 688

力扣1190:反转每对括号间的子串

题目描述: 给出一个字符串s(仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意: 结果中 不应 包含任何括号。 示例: 示例 1: 输入:s = "(abcd)" 输出:"dcba" 示例 2: 输入:s = "(ed(et(oc))el)" 输出:"leetcode" 示例 3: 输入:s = "a(bcdefghijkl(mno)p)q" 输出:"apmnolkjihgfedcbq" 题解: ...

zhoushimiao1990的博客 522

leetcode 1190. 反转每对括号间的子串(C++、python)

给出一个字符串s(仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意,您的结果中不应包含任何括号。 示例 1: 输入:s = "(abcd)" 输出:"dcba" 示例 2: 输入:s = "(u(love)i)" 输出:"iloveu" 示例 3: 输入:s = "(ed(et(oc))el)"...

qq_27060423的博客 1572

js中截取字符串的三个方法 substring()、substr()、slice()及charAt() 方法

js中有三个截取字符的方法,分别是substring()、substr()、slice(),平时我们可能都用到过,但总是会对这些方法有点混淆,特别是substring()和substr(),连方法名都差不多,下面就具体来看一下区别。 相同点 这三个方法都可以对字符串进行截取,并且返回一个新的字符串,也就是不会对原字符串进行修改 var a = '0123456789' a.substring(1,5) //"1234" var a = '0123456789' a.substr(1,5) //"1

江湖的博客 2396

LeetCode-Python-1190. 反转每对括号间的子串

给出一个字符串s(仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意,您的结果中不应包含任何括号。 示例 1: 输入:s = "(abcd)" 输出:"dcba" 示例 2: 输入:s = "(u(love)i)" 输出:"iloveu" 示例 3: 输入:s = "(ed(et(oc))el)"...

Keep Coding 1824

LeetCode题解(1190):反转字符串中每对括号间的子串(Python)

题目:原题链接(中等) 标签:栈 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(N)O(N)O(N) 40ms (78.74%) Ans 2 (Python) Ans 3 (Python) LeetCode的Python执行用时随缘,只要时间复杂度没有明显差异,执行用时一般都在同一个量级,仅作参考意义。 解法一(栈): def reverseParentheses(self, s: str) -> str

长行 714

Leetcode 1190:反转每对括号间的子串

题目描述 给出一个字符串s(仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意,您的结果中 不应 包含任何括号。 示例 1: 输入:s = "(abcd)" 输出:"dcba" 示例 2: 输入:s = "(u(love)i)" 输出:"iloveu" 示例 3: 输入:s = "(ed(et(oc))el)" ...

weixin_35338624的博客 1177
上一篇: 力扣每日一题:5705. 判断国际象棋棋盘中一个格子的颜色 深度剖析思路!
下一篇: 力扣每日一题:461.汉明距离 细说异或与二进制 双解!
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值