给定一个只包括 \'(\',\')\',\'{\',\'}\',\'[\',\']\' 的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: \"()\" 输出: true
示例 2:
输入: \"()[]{}\"
输出: true
示例 3:
输入: \"(]\" 输出: false
示例 4:
输入: \"([)]\" 输出: false
示例 5:
输入: \"{[]}\"
输出: true
这里可以用字典保存每一对括号,key为右边括号,value为左边括号,可以方便后面使用pop()函数进行删除。当出现左括号时,将括号保存在list中,当右括号出现时通过对比字典,得出对应的左括号,与之前保存在list中的最后一个左括号进行对比,如果一样则删除,一直删除到没有括号则返回True。
class Solution( ):
def isValid(self, s):
\"\"\"
:type s: str
:rtype: bool
\"\"\"
a = {\')\':\'(\',\']\':\'[\',\'}\':\'{\'}
l = [None]
for i in s:
if i in a and a[i] == l[-1]:
l.pop()
else:
l.append(i)
return len(l) == 1
继续阅读与本文标签相同的文章
-
阿里云智能--基础产品技术月刊 2019年8月
2026-05-18栏目: 教程
-
《Android进阶解密》| 每日读本书
2026-05-18栏目: 教程
-
watchbog再升级,企业黄金修补期不断缩小,或面临蠕虫和恶意攻击
2026-05-18栏目: 教程
-
阿里巴巴资深技术专家雷卷:值得开发者关注的 Java 8 后时代的语言特性| 9月9号栖夜读
2026-05-18栏目: 教程
-
3年Java开发6个点搞定高并发系统面试疑惑
2026-05-18栏目: 教程
