当前位置: 首页 > article >正文

有效的括号 力扣20

一、题目

二、思路

        这题算是栈的经典应用。

        主要有三种情况:

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

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

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

三、代码

class Solution {
    public boolean isValid(String s) {
      //这种就是典型的栈问题
        Stack<Character> stack = new Stack<>();
        for(char c : s.toCharArray()){
            // 1.如果这里栈为空说明,没有可以匹配的左括号
            //栈顶有对应的左括号就出栈模拟匹配
            if(c == ')' && !stack.isEmpty() && stack.peek() == '(')
                stack.pop();
            else if(c == '}' && !stack.isEmpty() && stack.peek() == '{')
                stack.pop();
            else if(c == ']' && !stack.isEmpty() && stack.peek() == '[')
                stack.pop();
            else
                stack.push(c);// 发现是左括号就入栈
        }
        return stack.isEmpty(); //2.如果栈为空,说明所有括号都能匹配上,否则就返回false
    }
}


http://www.kler.cn/a/586364.html

相关文章:

  • fprintf() 函数:C语言中的文件格式化输出利器
  • 机器学习_交叉验证
  • 大语言模型基础之‘显存优化‘
  • 【2025】Electron Git Desktop 实战一(上)(架构及首页设计开发)
  • 网络华为HCIA+HCIP数据链路层协议-以太网协议
  • uv命令介绍(高性能Python包管理工具,旨在替代pip、pip-tools和virtualenv等传统工具)
  • 设计一个高性能的分布式限流系统
  • ArcGIS Pro将有文字标注底图切换为无标注底图(在线地图图源)
  • PostgreSQL的学习心得和知识总结(一百七十一)|深入理解PostgreSQL数据库之 外连接消除 的使用和实现
  • 日本IT|AWS工作内容及未来性、以及转职的所需资质和技能
  • 三分钟掌握音视频处理 | 在 Rust 中优雅地集成 FFmpeg
  • go GRPC学习笔记
  • 工业相机视频播放(RTSP)
  • STM32Cubemx-H7-7-OLED屏幕
  • OkHttp 的证书设置
  • 蓝桥杯——路标设置
  • Celery - 入门(get-started)
  • 精准车型识别:视觉分析技术的力量
  • 海鲜水产行业wordpress外贸主题
  • Golang Channel 使用详解、注意事项与死锁分析