Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
Input: "()"
Output: true
Example 2:
Input: "()[]{}"
Output: true
Example 3:
Input: "(]"
Output: false
Example 4:
Input: "([)]"
Output: false
Example 5:
Input: "{[]}"
Output: true
Maintain a stack if the element on the top of the stack can be eliminated by the input element, then pop out the element, else append the input element. If the length of the stack is not 0, return false, else True
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
if not s:
return True
stack=[s[0]]
dic={"(":")","{":"}","[":"]"}
for i in range(1,len(s)):
if stack and stack[-1] in dic and dic[stack[-1]]==s[i]:
stack.pop()
else:
stack.append(s[i])
return len(stack)==0
本文介绍了一种使用栈数据结构来验证包含括号的字符串是否有效的算法。该算法能够判断括号是否正确配对及闭合,适用于多种编程场景。
927

被折叠的 条评论
为什么被折叠?



