Leetcode 有效括号 栈

Stack.push():压入栈中

Stack.pop():弹出栈顶元素并删除

Stack.peek():弹出栈顶元素但不删除

java 复制代码
class Solution {
    public boolean isValid(String s) {
        Stack<Character> stack=new Stack<>();
        for(int i=0;i<s.length();i++){
            char ch=s.charAt(i);
            if(ch=='('||ch=='{'||ch=='['){
                stack.push(ch);
            }else{
                // 此时是右括号
                if(stack.empty()){    //栈空但是还有右括号
                    return false;
                }

                char topstack=stack.peek(); //查询栈顶元素
                if((topstack=='(' && ch==')') ||(topstack=='{' && ch=='}') || (topstack=='[' && ch==']') ){
                    stack.pop();//弹出栈顶元素并删除
                }else{
                    //匹配失败
                    return false;
                }
            }
        }
        if(!stack.empty()){ //栈不空但是已经没有右元素了
            return false;
        }
        return true;
    }
}
相关推荐
重生之我是Java开发战士17 小时前
【优选算法】滑动窗口:长度最小的子数组,无重复字符的最长子串,最大连续1的个数,将x减到0的最小操作数,水果成篮,异位词,串联所有单词的子串,最小覆盖子串
算法
naruto_lnq17 小时前
C++与自动驾驶系统
开发语言·c++·算法
啊阿狸不会拉杆17 小时前
《数字信号处理》第6章:数字滤波器的基本概念及几种特殊滤波器
算法·matlab·信号处理·数字信号处理·dsp
放荡不羁的野指针17 小时前
leetcode150题-双指针
数据结构·算法·leetcode
好学且牛逼的马18 小时前
【Hot100|15-LeetCode 238. 除自身以外数组的乘积】
数据结构·算法·leetcode
Tisfy18 小时前
LeetCode 3651.带传送的最小路径成本:动态规划
算法·leetcode·动态规划·题解·排序
努力学习的小廉18 小时前
我爱学算法之—— 递归回溯综合(一)
算法·深度优先
m0_7369191018 小时前
C++中的策略模式实战
开发语言·c++·算法
孞㐑¥18 小时前
算法—位运算
c++·经验分享·笔记·算法
软件算法开发18 小时前
基于卷尾猴优化的LSTM深度学习网络模型(CSA-LSTM)的一维时间序列预测算法matlab仿真
深度学习·算法·matlab·lstm·一维时间序列预测·卷尾猴优化·csa-lstm