宁波网站推广业务株洲企业seo优化
文章目录
- 1、题目描述
- 2、思路
- 代码
1、题目描述
有效的括号。
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
2、思路
用栈,是左括号则压入栈,右括号的话则出栈比较是否匹配。若不匹配,则返回False。注意:若第一个是右括号,且此时的栈为0,则直接返回False。见代码
代码
class Solution:def isValid(self, s: str) -> bool:# s 必定为偶数if len(s) % 2 != 0: return False hash_map = {']': '[','}': '{',')': '('}# 一个栈stack = []for char in s:# 若当前char为左括号,则压入栈if char not in hash_map:stack.append(char)# 若当前char为右括号,则出栈进行比较else:# ====== 注意:若空栈且第一个char为右括号,则直接返回False!========== #if len(stack) == 0:return False # 若当前不匹配,则直接返回Falseif stack[-1] != hash_map[char]:return False # 匹配完成,记得出栈。else:stack.pop()return True if len(stack) == 0 else False