博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode Problem 20
阅读量:7094 次
发布时间:2019-06-28

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

class Solution:    def isValid(self,s):        stack=[]        dict={']':'[','}':'{',')':'('}    for i in s:        if i in dict.values(): stack.append(i) elif i in dict.keys(): if stack==[] or stack.pop()!=dict[i]: return False else: return False return stack==[]
class Solution(object):    def isValid(self, s):        """        :type s: str        :rtype: bool        """        s1=list(s)                list1=['(','{
','['] list2=[] dict1={
')':'(','}':'{
',']':'['} for i in s1: if i in list1: list2.append(i) else: if list2==[] or list2[len(list2)-1]!=dict1[i]: return False else: list2.pop() if list2!=[]: return False return True

图1 图2 分别为discussion里的高票和我origin的submission。比较而言,希望以后自己的改进之处:

  • 对于str,可以直接用for遍历字符,而无需转成list
  • 对于左括号,不必创建新的list,只需调用dict.values(),同样,右括号调用dict.keys()
  • 另外,对于这里的调用最后一个字符,可以无论如何直接.pop出来,但对于如果不出栈调最后一个元素,感觉自己的方法仍不是很理想。对于python的切片,仍然理解不到位
  • 在结尾的return,我自己的写的不够简洁

在刷题的过程中,让我知道了list是python中的天然栈。

p.s希望总结会有所收获,但题量还是要up up

 

转载于:https://www.cnblogs.com/sss423/p/7503756.html

你可能感兴趣的文章
文件MD5
查看>>
收集的博客网址springboot、cloud
查看>>
解析函數論 Page 29 命題(3) 模的下界的可達性
查看>>
windows异常调用顺序
查看>>
红黑树
查看>>
Sass
查看>>
Objective-C中Block语法、Block使用以及通过Block实现数组排序
查看>>
[转载]从业务运维转到产品经理,我摸爬滚打的产品之路
查看>>
比较正在使用的域名 和顶层窗口的域名
查看>>
Gitlab - Mac本机访问VirtualBox上搭建的Gitlab
查看>>
Bootstrap的Model源码详细注释 (转)
查看>>
java采用jxl写入一个Excel文件
查看>>
1171:大整数的因子
查看>>
传说中的数据结构 栈
查看>>
结对-结对编项目作业名称-设计文档
查看>>
Cesium 获取当前视图范围
查看>>
javascript基础
查看>>
加快普及智能家居DIY功能更受青睐
查看>>
python成长之路八 -- 内置函数
查看>>
【框架学习与探究之定时器--Quartz.Net 】
查看>>