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

括号匹配——(栈实现)

题目链接

有效的括号icon-default.png?t=O83Ahttps://leetcode.cn/problems/valid-parentheses/description/

题目要求

样例

解题代码

import java.util.*;
class Solution {public boolean isValid(String str) {Stack<Character> stack=new Stack<>();for(int i=0;i<str.length();i++){char ch=str.charAt(i);if(ch=='('||ch=='{'||ch=='['){stack.push(ch);}else{if(stack.empty()){return false;}if(ch=='}'&&stack.peek()=='{'||ch==']'&&stack.peek()=='['||ch==')'&&stack.peek()=='('){stack.pop();}else{return false;}}}if(!stack.empty()){return false;}return true;}
}

思路

此问题主要分以下几种情况:

1、我们先初始化一个栈,对已有的字符串进行逐个遍历;

2、进行判断是否为左括号,若为左括号,则存入栈中;若为右括号:此时先判断栈是否为空:(1)为空的情况下,说明右括号多,返回 false

(2)不为空,则判断是否匹配

        (2.1)匹配的话,将栈中的左括号取出

        (2.2)不匹配,说明括号顺序不匹配,如上图2;返回 false;

3、最后,for 循环遍历完,检查栈是否还有元素(左括号多),若不为空,返回 false;最后返回           true;表示全部匹配;

个人总结

本篇陌生知识点为:

1、导入包,快速创建栈,利用泛型规定栈内数据类型;

2、字符串转化为字符数组,并遍历;

import java.util.*;public boolean isValid(String str) {Stack<Character> stack=new Stack<>();for(int i=0;i<str.length();i++){char ch=str.charAt(i);}}
http://www.lryc.cn/news/454723.html

相关文章:

  • 【Java 并发编程】初识多线程
  • Linux下载安装MySQL8.4
  • 强化学习笔记之【DDPG算法】
  • c++继承(下)
  • 数据结构 ——— 单链表oj题:反转链表
  • 前端项目npm install报错解决的解决办法
  • vue双向绑定/小程序双向绑定区别
  • 华为OD机试真题---字符串变换最小字符串
  • JAVA基础面试题汇总(持续更新)
  • 设计模式-创建型-常用:单例模式、工厂模式、建造者模式
  • 【数据结构】【链表代码】随机链表的复制
  • Linux 系统五种帮助命令的使用
  • Vueron引领未来出行:2026年ADAS激光雷达解决方案上市路线图深度剖析
  • Java | Leetcode java题解之第458题可怜的小猪
  • 怎么不改变视频大小的情况下,修改视频的时长
  • 数据结构:AVL树
  • 系统守护者:使用PyCharm与Python实现关键硬件状态的实时监控
  • 【工作流引擎集成】springboot+Vue+activiti+mysql带工作流集成系统,直接用于业务开发,流程设计,工作流审批,会签
  • SumatraPDF一打开就无响应怎么办?
  • 棋牌灯控计时计费系统软件免费试用版怎么下载 佳易王计时收银管理系统操作教程
  • Excel下拉菜单制作及选项修改
  • 树莓派 mysql (兼容mariadb)登陆问题
  • 智能手表(Smart Watch)项目
  • 设计模式~~~
  • Golang | Leetcode Golang题解之第458题可怜的小猪
  • 欢聚时代(BIGO)Android面试题及参考答案
  • [C语言]指针和数组
  • Centos Stream 9备份与恢复、实体小主机安装PVE系统、PVE安装Centos Stream 9
  • Linux的发展历史与环境
  • Jax(Random、Numpy)常用函数