算法: 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | func isValid ( _ s : String ) - > Bool { let dict : [ Character : Character ] = [ ")" : "(" , "}" : "{" , "]" : "[" ] var stack = [ Character ]() for char in s { // 如果是左括号, 入栈 if dict . values . contains ( char ) { stack . append ( char ) } else { // 如果是右括号,栈为空,肯定无法匹配 if stack . isEmpty { return false } // 右括号与栈顶元素进行匹配,匹配成功,出栈 if dict [ char ] == stack . last { stack . removeLast () } else { // 右括号与栈顶元素不匹配,也无法成立 return false } } } // 有效的括号一定是栈为空 return stack . count == 0 } let valid = isValid ( "([{}])" ) print ( valid ) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具