栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Leetcode题库1021. 删除最外层的括号(python 实现)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Leetcode题库1021. 删除最外层的括号(python 实现)

思路

使用栈进行原语化分解

例:
s = “(()())(())”
创建保存原语的列表S = []
创建栈stack = []
flag = 0
遍历s,若值为s[i] = ‘(’ 则加入stack,若值为s[i] = ‘)’ 则从stack尾部弹出一个数据
判断stack若为空,则将s[flag:i+1]插入S尾部,flag = i + 1
重复上述步骤,直至遍历s结束

上述操作结束后S = [‘(()())’, ‘(())’]
只需要将S中每一个元素两边的括号去掉组成新的字符串返回即可

代码
class Solution:
    def removeOuterParentheses(self, s: str) -> str:
        S = []
        stack = []
        flag = 0
        for i in range(len(s)):
            if s[i]=='(':
                stack.append(s[i])
            else:
                del stack[-1]
            if len(stack)==0:
                S.append(s[flag+1:i])
                flag = i + 1
        print(S)
        return ''.join(S)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/935643.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号