博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】301. Remove Invalid Parentheses
阅读量:6165 次
发布时间:2019-06-21

本文共 1870 字,大约阅读时间需要 6 分钟。

题目如下:

解题思路:还是这点经验,对于需要输出整个结果集的题目,对性能要求都不会太高。括号问题的解法也很简单,从头开始遍历输入字符串并对左右括号进行计数,其中出现右括号数量大于左括号数量的情况,表示这个区间是不合法的,需要删掉一个右括号;遍历完成后,如果左括号数量大于右括号的数量,那么需要删除左括号,直至两者相等。

代码如下:

class Solution(object):    def removeInvalidParentheses(self, s):        """        :type s: str        :rtype: List[str]        """        queue = [(s,0)]        res = []        dic = {}        while len(queue) > 0:            qs,count = queue.pop(0)            left = right = 0            flag = False            for i,v in enumerate(qs):                if v == '(':                    left += 1                elif v == ')':                    right += 1                if right > left:                    for j in range(i+1):                        if qs[j] == ')':                            newqs = qs[:j] + qs[j+1:]                            if (newqs, count + 1) not in queue:                                queue.append((newqs,count+1))                            flag = True                    break            if flag == True:                continue            if left == right:                if qs not in dic:                    dic[qs] = 1                    if len(res) == 0:                        res.append((qs,count))                    else:                        if res[-1][1] > count:                            res = [(qs,count)]                        elif res[-1][1] == count:                            res.append((qs,count))                        else:                            continue            else:                for j, v in enumerate(qs):                    if v == '(':                        newqs = qs[:j] + qs[j+1:]                        if (newqs,count+1) not in queue:                            queue.append((newqs,count+1))        ans = []        for i in res:            ans.append(i[0])        return ans

 

转载于:https://www.cnblogs.com/seyjs/p/9458691.html

你可能感兴趣的文章
【全球AI人才排行榜】美国第一,中国仅排名第7
查看>>
微信小程序输入框input
查看>>
MySql字符串函数使用技巧
查看>>
Doc2Vec,Word2Vec文本相似度 初体验。
查看>>
系统ghost后变成一个盘了别的分区的文件怎么找回
查看>>
Win7+Ubuntu11
查看>>
请问华为三层交换机里面的那个从IP是个什么意思? -
查看>>
kFeedback开源啦
查看>>
大数据传输,文件传输的专业解决方案!
查看>>
阿里云专家穆轩的《杭州九年程序员之“修炼”手册》
查看>>
JQuery:deferred对象的方法
查看>>
eyoucms问答 百度权重是什么
查看>>
win10中遇到qq视频时摄像头打不开没反应的解决方法
查看>>
介绍自己的一个Android插桩热修复框架项目QuickPatch
查看>>
关于textarea的ie9的maxlength不起作用的问题,请参考如下URL解决。
查看>>
Solr Facet 查询
查看>>
C++类的继承一
查看>>
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案...
查看>>
巧用VMware Workstation的clone来制作虚拟机模板
查看>>
Spring-Mybatis MapperScannerConfigurer 取不到PropertyPlaceholderConfigurer里的值
查看>>