有效的括号-力扣

栈适合用来解决匹配问题。

  • 第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false

  • 第二种情况:遍历字符串匹配的过程中,发现栈里没有要匹配的字符。所以return false

  • 第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false

  • 当字符串遍历完之后,栈是空的,就说明全都匹配了。

cpp 复制代码
class Solution {
public:
    bool isValid(string s) {
        stack<char> st;
        for(auto ch : s){
            if(ch == '('){
                st.push(')');
            }else if(ch == '['){
                st.push(']');
            }else if(ch == '{'){
                st.push('}');
            }else if(st.empty() || ch != st.top()){
                return false;
            }else {
                st.pop();
            }
        }

        return st.empty();
    }
};
相关推荐
kingmax542120086 分钟前
图论核心算法(C++):包括存储结构、核心思路、速记口诀以及学习方法, 一站式上机考试学习【附PKU百练,相关练习题单】
c++·算法·图论·信奥赛·上机考试·百练·pku
罗湖老棍子8 分钟前
【例9.15】潜水员(信息学奥赛一本通- P1271)
c++·算法·动态规划·二维费用背包
_OP_CHEN12 分钟前
算法基础篇:(二十一)数据结构之单调栈:从原理到实战,玩转高效解题
数据结构·算法·蓝桥杯·单调栈·算法竞赛·acm/icpc
代码游侠1 小时前
学习笔记——数据结构学习
linux·开发语言·数据结构·笔记·学习
q***51892 小时前
【语义分割】12个主流算法架构介绍、数据集推荐、总结、挑战和未来发展
算法·架构
蘑菇小白2 小时前
数据结构--链表
数据结构·链表
Ghost-Silver2 小时前
《星火》——关于Deepseek的进化速度
笔记·算法
古译汉书2 小时前
嵌入式笔记(个人总结)
数据结构·笔记·stm32·单片机·嵌入式硬件
代码游侠5 小时前
日历的各种C语言实现方法
c语言·开发语言·学习·算法
春日见9 小时前
丝滑快速拓展随机树 S-RRT(Smoothly RRT)算法核心原理与完整流程
人工智能·算法·机器学习·路径规划算法·s-rrt