Given a string containing just the characters (), [], {}, determine if the input string is valid.
The brackets must close in the correct order.
思路
在考虑这样的题目的时候,边界条件一定要判断清楚。首先,不是说任意一对括号相配对就可以了,还需要考虑括号的种类;其次,括号的配对不能错位嵌套。
本题利用堆栈可以很容易解决。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| class Solution(object): def isValid(self, s): """ :type s: str :rtype: bool """ p = [] flag = 0 for i in s: if (i == '(' or i == '[' or i == '{'): p.append(i) else: if (len(p)): j = p.pop() if (ord(i) - ord(j) == 1 or ord(i) - ord(j) == 2): flag = 1 else: flag = 0 break else: flag = 0 break if (flag and len(p) == 0): return True else: return False
|