括号序列
题目
给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列
括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。
eg:
输入"["
输出 False
输入“{}”
输出 True
分析
- 定义一个栈,列表就行,用来接收或者比较 S 的每个字符。
- 首先进行判断,如果栈为空,直接 append,否则的话进行判断,如果和前一个字符相等,直接添加,因为相等的字符肯定不是括号序列,然后依次进行判断每个字符和栈顶字符是否是一对,如果是就弹出栈顶。
实现代码:
#!/usr/bin/env python # -*- encoding: utf-8 -*- class Solution: def isValid(self, s): valid_list = [] for valid in s: if len(valid_list) == 0: valid_list.append(valid) elif valid_list[-1]==valid: valid_list.append(valid) else: if valid =="}" and valid_list[-1]=="{": valid_list.pop() elif valid =="]" and valid_list[-1]=="[": valid_list.pop() elif valid ==")" and valid_list[-1]=="(": valid_list.pop() return False if len(valid_list) else True if __name__ == "__main__": s = Solution() result = s.isValid("[(){}]") print(result)
不论你在什么时候开始,重要的是开始之后就不要停止。
不论你在什么时候结束,重要的是结束之后就不要悔恨。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律