423 · 有效的括号序列
Algorithms
简单
通过率
35%
题目题解笔记讨论排名
描述
给定一个字符串所表示的括号序列,包含以下字符: ‘(’, ‘)’, ‘{’, ‘}’, ‘[’ and ‘]’, 判定是否是有效的括号序列。
括号必须依照 “()” 顺序表示, “()[]{}” 是有效的括号,但 “([)]” 则是无效的括号。
样例
样例 1:
输入:"([)]"
输出:False
样例 2:
输入:"()[]{}"
输出:True
挑战
O(n)的时间,n 为括号的个数。
from collections import deque
class Solution:
"""
@param s: A string
@return: whether the string is a valid parentheses
"""
def isValidParentheses(self, s):
# write your code here
sta=deque()
s=list(s)
left=["(","[","{"]
right=[")","]","}"]
l_r_map={")":"(", "]":"[", "}":"{"}
for i in s:
if(i in left):
sta.append(i)
else:
if(len(sta)==0):
return False
end=sta.pop()
if(l_r_map[i]==end):
continue
else:
sta.append(end)
sta.append(i)
if(len(sta)):
return False
else:
return True