# 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
#
# 有效字符串需满足:
#
#
# 左括号必须用相同类型的右括号闭合。
# 左括号必须以正确的顺序闭合。
#
#
# 注意空字符串可被认为是有效字符串。
#
# 示例 1:
#
# 输入: "()"
# 输出: true
#
#
# 示例 2:
#
# 输入: "()[]{}"
# 输出: true
#
#
# 示例 3:
#
# 输入: "(]"
# 输出: false
#
#
# 示例 4:
#
# 输入: "([)]"
# 输出: false
#
#
# 示例 5:
#
# 输入: "{[]}"
# 输出: true
# Related Topics 栈 字符串
# 👍 2079 👎 0
# leetcode submit region begin(Prohibit modification and deletion)
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
if not s:
return False
cMap = {
")": "(",
"}": "{",
"]": "[",
}
stack = []
for k, v in enumerate(s):
if v not in cMap:
stack.append(v)
else:
if len(stack) > 0 and cMap[v] == stack[-1]:
stack.pop()
else:
return False
return len(stack) <= 0
# leetcode submit region end(Prohibit modification and deletion)
print(Solution().isValid(")"))