lintcode练习-423. 有效的括号序列

描述

给定一个字符串所表示的括号序列,包含以下字符: '(', ')''{''}''[' 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
 

猜你喜欢

转载自blog.csdn.net/qq_36387683/article/details/81357401
今日推荐