[leetcode] Valid Parentheses @Python

https://oj.leetcode.com/problems/valid-parentheses/

 

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.

Trick: 

Data structure: stack. LIFO (Last in first out)

class Solution:
    # @return a boolean
    def isValid(self, s):
        stack = []
        left, right = '([{', ')]}'
        for i in s:
            if i in left:
                stack.append(i); continue
            for j in range(3):
                if right[j] == i:
                    if not stack or stack[-1] != left[j]:
                        return False
                    else:
                        stack.pop()
                        continue
        return not stack

 

posted on 2014-10-01 00:07  AIDasr  阅读(783)  评论(1编辑  收藏  举报

导航