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

0%

leetcode-20有效的括号

最初想法:

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

将左括号放入栈中,遇到右括号弹出栈顶元素,看是否配对.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
#栈实现
if len(s) == 0:
return True
stack = []
mydict = {')':'(','}':'{',']':'['}
for elem in s:
if elem in mydict: #说明是右括号,弹出栈顶元素
if stack: #栈中有元素
topElem = stack.pop()
else:#栈是空的,遇到右括号,直接return false
return False
if topElem != mydict[elem]: #左右括号不匹配
return False
else: #说明是左括号,加入栈中
stack.append(elem)
if stack:
return False
else:
return True

改进下:

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

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