leetcode-有效括号序列-94

题目要求

思路

1.使用栈的先进后出的思路,存储前括号,如果st中有对应的后括号与之匹配就说明没问题

2.有两个特殊情况就是字符串第一个就是后括号,这个情况本身就是不匹配的,还有一种是前面的n个字符串本身是匹配的,这时候来了个后括号,这种也是不匹配的,这里的处理方法是,如果栈为空,不管这个字符是啥,都插入进去,最后只要判断栈是否为空就行,如果第一个字符串是后括号,最后栈肯定是不为空的。
代码实现

cpp 复制代码
class Solution {
public:
    stack<char> st;
    bool isValid(string s) {
        // write code here
        int size = s.size();
        for(int i = 0; i < size; i++)
        {
            if (s[i] == '[' || s[i] == '{' || s[i] == '(' || st.empty())
                st.push(s[i]);
            if (s[i] == ']')
            {
                if (st.top() == '[')
                    st.pop();
                else
                    return false;
            }
            if (s[i] == '}')
            {
                if (st.top() == '{')
                    st.pop();
                else
                    return false;
            }
            if (s[i] == ')')
            {
                if (st.top() == '(')
                    st.pop();
                else
                    return false;
            }
        }
        if(!st.empty())
            return false;

        return true;
    }
};
相关推荐
探索为何39 分钟前
JWT与Session的实战选择-杂谈(1)
后端·面试
怒放吧德德2 小时前
MySQL篇:MySQL主从集群同步延迟问题
后端·mysql·面试
算AI3 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
uhakadotcom3 小时前
MQTT入门:轻量级物联网通信协议
后端·面试·github
逆袭的小黄鸭4 小时前
JavaScript 闭包:强大特性背后的概念、应用与内存考量
前端·javascript·面试
carterwu4 小时前
如何自建一个类似antd的组件库?
面试
9号达人4 小时前
java9新特性详解与实践
java·后端·面试
uhakadotcom5 小时前
Zustand状态管理库:轻量级、高效的React解决方案
前端·javascript·面试
hyshhhh5 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
uhakadotcom5 小时前
阿里云STS:安全、灵活的临时访问管理
后端·面试·github