【LetMeFly】20.有效的括号栈匹配力扣题目链接https://leetcode.cn/problems/valid-parentheses/给定一个只包括(){}[]的字符串s判断字符串是否有效。有效字符串需满足左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。示例 1输入s ()输出true示例 2输入s ()[]{}输出true示例 3输入s (]输出false示例 4输入s ([])输出true示例 5输入s ([)]输出false提示1 s.length 104s仅由括号()[]{}组成解题方法栈遍历字符串遇到左括号则入栈遇到右括号则看栈顶元素与之是否匹配匹配则出栈不匹配直接返回False若遍历完栈为空才返回True。时间复杂度O ( l e n ( s ) ) O(len(s))O(len(s))空间复杂度O ( l e n ( s ) ) O(len(s))O(len(s))也可以给栈中插入一个非括号哨兵字符来避免判断栈中是否有元素。AC代码C/* * LastEditTime: 2026-10-01 09:22:00 */classSolution{public:boolisValid(conststrings){stackcharst;for(charc:s){if(c(||c[||c{){st.push(c);}elseif(st.empty()){returnfalse;}else{charast.top();st.pop();if(!(a(c)||a[c]||a{c})){returnfalse;}}}returnst.empty();}};PythonclassSolution:defisValid(self,s:str)-bool:st[]pair{{:},(:),[:]}forcins:ifcinpair:st.append(c)elifpair.get(st.pop(),)!c:returnFalsereturnlen(st)1同步发文于CSDN和我的个人博客原创不易转载经作者同意后请附上原文链接哦~千篇源码题解已开源