1 题目描述
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
2 解题思想
引入栈的思想:
遍历字符串1)左括号全都入栈2)遇到右括号就出栈,然后匹配是否合适3)最后判断栈内元素是否为空(左括号元素和右括号完全匹配)
3 代码实现
class Solution:def isValid(self, s: str) -> bool:stack=[]s = "".join(s.split())if not s: return Trueelse :for i in s:if ( i=='(' or i=='[' or i=='{'):stack.append(i)elif (i==')' or i==']' or i=='}'): if not stack: return Falsel=stack.pop() if i==')':if l!="(":return False elif i==']':if l!="[":return False elif i=='}':if l!="{":return Falseelse:return Falseif not stack: return Trueelse: return False