博客域名:
http://www.xnerv.wang
原题页面: https://oj.leetcode.com/problems/valid-parentheses/
题目类型:栈
难度评价:★
本文地址: http://blog.csdn.net/nerv3x3/article/details/36896909
原题页面: https://oj.leetcode.com/problems/valid-parentheses/
题目类型:栈
难度评价:★
本文地址: http://blog.csdn.net/nerv3x3/article/details/36896909
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.
大家肯定在大学时都做过这道题目吧,不过可能相对简单一点,只涉及小括号的配对,这里需要考虑三种括号,不过还是一样的简单。
class Solution:
def isMatch(self, l ,r):
return ("(" == l and ")" == r) or ("[" == l and "]" == r) or ("{" == l and "}" == r)
# @return a boolean
def isValid(self, s):
len_s = len(s)
if 0 == len(s):
return True
arr = [ ]
for ch in s:
len_arr = len(arr)
if 0 == len_arr or not self.isMatch(arr[len_arr - 1], ch):
arr.append(ch)
else:
arr.pop()
return 0 == len(arr)