题目描述
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
引用文本
输入: “()”
输出: true
示例 2:
引用文本
输入: “()[]{}”
输出: true
示例 3:
引用文本
输入: “(]”
输出: false
示例 4:
引用文本
输入: “([)]”
输出: false
示例 5:
引用文本
输入: “{[]}”
输出: true
我的代码
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
def isValid(sampleStr):
allSet = (["(",")","[","]","{","}"])
allDict = {"(":")","{":"}","[":"]"}
if sampleStr == "":
print("true")
elif len(sampleStr)%2 == 0 and set(sampleStr).issubset(allSet):
for i in sampleStr[::2]:
keyStr = sampleStr.index(i)
valueStr = keyStr + 1
if i in allDict.keys():
valueDict = allDict[sampleStr[keyStr]]
if valueDict == sampleStr[valueStr] or valueDict == sampleStr[-valueStr]:
print("true")
else:
print("false")
break
else:
print("false")
break
else:
print("false")
test = "{()}"
isValid(test)