塞进裤子ヾ(≧O≦)〃嗷~

0%

leetcode-20有效的括号

最初想法:

用栈实现,若栈顶元素与要加入的元素配对,栈顶元素出栈,最后看栈的长度。

当栈顶元素有右括号时,直接return False

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
mydict = {"{":1,"}":-1,"(":2,")":-2,"[":3,"]":-3}
mystack = []
for idx,elem in enumerate(s):
if len(mystack) > 0:
if int(mydict[mystack[-1]])<0:
return False
if int(mydict[elem])+int(mydict[mystack[-1]])==0:#配对成功
mystack.pop()#栈顶元素出栈
continue
mystack.append(elem)

if len(mystack)==0:
return True
else:
return False

改进下:

len(s)为奇数,直接return false。

if help:小手一抖点个广告 or 大手一挥资助一下