描述
给定一个字符串所表示的括号序列,包含以下字符: '(', ')'
, '{'
, '}'
, '['
and ']'
, 判定是否是有效的括号序列。
您在真实的面试中是否遇到过这个题? 是
样例
括号必须依照 "()"
顺序表示, "()[]{}"
是有效的括号,但 "([)]"
则是无效的括号。
挑战
O(n)的时间,n为括号的个数
实现代码:
class Solution:
"""
@param s: A string
@return: whether the string is a valid parentheses
"""
def isValidParentheses(self, s):
# write your code here
left_valid = ['(', '{', '[']
right_valid = [')', '}', ']']
hash_map = {'(':')', '{':'}', '[':']'}
left_stack = []
for i in s:
if i in left_valid:
left_stack.append(i)
elif not left_stack:
return False
else:
if i != hash_map[left_stack.pop()]:
return False
return len(left_stack) == 0