[Leetcode]Valid Parentheses

来源:互联网 发布:网络搞笑歌曲你是谁 编辑:程序博客网 时间:2024/04/19 02:24

Given a string containing just the characters '('')''{''}''[' and ']', determine if the input string is valid.

The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

判断括号序列是否合法~维护一个栈,碰到左括号就入栈,碰到右括号时检查栈顶括号是否与当前右括号配对,如不配对,直接返回False;注意最后还得检查栈是否为空,如果栈不为空的话,说明还有没配对的括号,故应返回False

class Solution:    # @return a boolean    def isValid(self, s):        if s is None or len(s) == 0: return True        stack = []        for i in xrange(len(s)):            if s[i] in ['(', '[', '{']:                stack.append(s[i])            else:                if stack and ((s[i] == ')' and stack[-1] == '(') or (s[i] == ']' and stack[-1] == '[') or (s[i] ==                     '}' and stack[-1] == '{')):                    stack.pop()                else:                    return False        return len(stack) == 0


0 0
原创粉丝点击