有效的括号 力扣20

ops/2025/3/15 19:09:11/

一、题目

二、思路

        这题算是栈的经典应用。

        主要有三种情况:

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

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

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

三、代码

java">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();elsestack.push(c);// 发现是左括号就入栈}return stack.isEmpty(); //2.如果栈为空,说明所有括号都能匹配上,否则就返回false}
}


http://www.ppmy.cn/ops/166012.html

相关文章

多线程(二)

文章目录 1.线程不安全问题2.synchronized3.volatile4.wait()方法和notify()方法 1.线程不安全问题 public class demo2 {public static int count0;public static void main(String[] args) throws InterruptedException {Thread thread1 new Thread (()->{for (int i …

Linux内核实时机制18 - RT调度器1 - 数据结构

文章目录 1、Linux调度概述2、实时调度类 rt_sched_class2.1、SCHED_FIFO 调度策略2.2、SCHED_RR 调度策略3、实时调度相关数据结构3.1、实时调度实体 sched_rt_entity3.2、优先级队列rt_prio_array3.3、实时就绪队列 rt_rq3.4、带宽控制结构体 rt_bandwidth3.5、组调度结构体 …

简述下npm,cnpm,yarn和pnpm的区别,以及跟在后面的-g,--save, --save-dev代表着什么

文章目录 前言一、npm&#xff0c;cnpm&#xff0c;yarn和pnpm的基本介绍和特点1.npm (Node Package Manager)2. Yarn3. cnpm (China npm)4. pnpm 二、简述npm和pnpm 的存储方式和依赖数1.存储方式2.依赖树 三、两者依赖树的差异导致结果的对比四、简单说说-g&#xff0c;--sav…

大数据如何赋能零售行业进行产品创新

零售市场日新月异&#xff0c;品牌之间同质化严重&#xff0c;产品创新成为了品牌提升竞争力&#xff0c;实现二次增长的重要策略&#xff0c;随着时代及技术的发展&#xff0c;大数据在产品创新的应用及地位愈加重要&#xff0c;如何巧妙利用庞大的大数据&#xff0c;充分发掘…

自用testAiPlan

以下是针对蓝桥杯B组保三争二的完整30天冲刺计划&#xff0c;精确到每日任务、高频考点和突破策略&#xff0c;标注&#x1f31f;的为争二重点内容&#xff1a; 计划特点 保三基础&#xff1a;确保填空题全对 编程前3题高正确率争二突破&#xff1a;强化动态规划/BFS/数学建模…

C#-使用VisualStudio编译C#工程

一.创建csproj文件 二.创建源cs文件 三.生成解决方案 四.运行解决方案 五.VisualStudio功能列表 <1.代码格式化: CtrlKD完成代码整体格式化 <2.窗口布局 窗口->重置窗口布局 <3.引用查找&关联 <4.包管理 <5.日志输出级别 工具->选项->项目解决方案…

S7-1200 G2移植旧版本S7-1200程序的具体方法示例

S7-1200 G2移植旧版本S7-1200程序的具体方法示例 前期概要: S7-1200 G2必须基于TIA博途V20,之前的程序可通过移植的方式在新硬件上使用。 该移植工具可自动将TIA Portal 项目从 S7-1200 移植到更新的S7-1200 G2。 注意: 该插件支持在同一TIA Portal项目实例内将软件和/或硬…

嵌入式硬件: GPIO与二极管基础知识详解

1. 前言 在嵌入式系统和硬件开发中&#xff0c;GPIO&#xff08;通用输入输出&#xff09;是至关重要的控制方式&#xff0c;而二极管作为基础电子元件&#xff0c;广泛应用于信号整流、保护电路等。本文将从基础原理出发&#xff0c;深入解析GPIO的输入输出模式&#xff0c;包…