返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java括号匹配
  • 659
分享到

Java括号匹配

java算法数据结构leetcode 2023-10-03 12:10:01 659人浏览 薄情痞子
摘要

目录 一、题目描述 二、题解 一、题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右

目录

一、题目描述

二、题解


一、题目描述

给定一个只包括 '('')''{''}''['']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

示例:

输入:s = "()"

输出:true

输入:s = "(]"

输出:false

二、题解

思路分析:

我们可以使用来解决这个问题:

遍历字符串,如果是左括号,就将其入栈

如果是右括号,就将栈顶元素弹出,判断是否是与其匹配的左括号,

若栈中无元素可以弹出,则无能与该右括号匹配的左括号,返回false,

若不是与其匹配的左括号,返回false,

若是与其匹配的左括号,则继续遍历下一个字符。

当循环结束时,判断栈是否为空,

若栈不为空,则表明还有未匹配的左括号,返回false,

若栈为空,则表示所有的左括号都与相同类型的右括号匹配,返回true

代码实现:

class Solution {    public boolean isValid(String s) {        Stack stack = new Stack<>();        for (int i = 0; i < s.length(); i++) {            //判断是否是左括号            char ch = s.charAt(i);            if(ch == '(' || ch == '[' || ch == '{'){                stack.push(ch);            }else {                //右括号,出栈                //无左括号能够匹配,返回false                if(stack.empty()){                    return false;                }                char ch2 = stack.pop();                if((ch2 == '(' && ch == ')') || (ch2 == '[' && ch == ']') || (ch2 == '{' && ch == '}')){        }else {                    return false;                }            }        }        return stack.empty();    }}

题目来自:

20. 有效的括号 - 力扣(LeetCode)

来源地址:https://blog.csdn.net/2301_76161469/article/details/133363547

--结束END--

本文标题: Java括号匹配

本文链接: https://lsjlt.com/news/423038.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java括号匹配
    目录 一、题目描述 二、题解 一、题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右...
    99+
    2023-10-03
    java 算法 数据结构 leetcode
  • java括号匹配问题介绍
    目录题目描述:问题分析:1 可能存在左括号多的情况2 可能存在右括号多的情况3 存在括号不匹配的情况总结解题思路:代码实现:题目描述: 给定一个只包括 ‘(',')','{','}...
    99+
    2024-04-02
  • Java 括号匹配问题案例详解
    目录前言例题算法思想算法举例代码栈类括号匹配核心算法完整代码运行结果前言 括号匹配问题算是栈应用中比较经典的问题了,在数据结构的书中还有各种考试中会出现。最近刷题的时候也遇到了,就想...
    99+
    2024-04-02
  • python 匹配×××号
    匹配×××号码: import re str=''' 340800197606129559 130803198801278415 211282200011084484 520111199309186411 5108021994081543...
    99+
    2023-01-31
    python
  • grep正则表达式匹配中括号的方法实例
    目录1. 匹配中括号,例如匹配 String[] args2. 匹配大括号,例如匹配 {abc 123}3. 同时匹配中括号和大括号,例如匹配 new byte[]{6, 55, 7...
    99+
    2024-04-02
  • 正则表达式怎么匹配多个括号中的值
    可以使用正则表达式的分组功能来匹配多个括号中的值。具体步骤如下:1. 使用圆括号 `()` 将需要匹配的内容包裹起来,形成一个分组。...
    99+
    2023-08-18
    正则表达式
  • java正则表达式匹配替换大括号变量${}和替换${}变量的值
    java正则表达式替换“$ {}”特殊字符并还原,以及java正则表达式替换${}变量为变量的值这两种操作的代码示例。 import java.text.SimpleDateFormat;import...
    99+
    2023-10-11
    java 正则表达式 jvm
  • C语言解决堆栈括号匹配问题示例详解
    目录首先构建栈调用匹配函数代码调用1.括号匹配问题就是当遇到{( [这些左括号的时 将括号字符入栈 2.当遇到右括号时判断栈顶元素是不是与左括号匹配如果匹配就出栈 如果不匹配就直接结...
    99+
    2024-04-02
  • 正则表达式如何分别匹配多个括号中的值
    可以使用正则表达式中的分组来分别匹配多个括号中的值。首先,使用圆括号将要匹配的内容括起来,形成一个分组。例如,要匹配多个小括号中的值...
    99+
    2023-08-18
    正则表达式
  • 正则表达式从匹配中排除括号之间的文本
    php小编香蕉为您介绍一种强大且常用的字符串处理工具——正则表达式。正则表达式在匹配字符串时可以排除括号之间的文本,这在处理复杂的文本数据时非常实用。通过简单的语法规则,我们可以轻松地...
    99+
    2024-02-09
  • python 正则匹配手机号
    import rephone = str(input('请输入手机号:'))# b = str(12345678912)t = re.compile(r'^1(3\d|4[4-9]|5[0-35-9]|6[67]|7[013-8]|8[0...
    99+
    2023-01-31
    正则 手机号 python
  • 如何理解栈在括号匹配和表达式求值中的应用
    这篇文章主要讲解了“如何理解栈在括号匹配和表达式求值中的应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解栈在括号匹配和表达式求值中的应用”吧!编程...
    99+
    2024-04-02
  • Java 正则表达式匹配
    1 正则表达式 1.1 什么是正则表达式 正则表达式: 定义一个搜索模式的字符串。 正则表达式可以用于搜索、编辑和操作文本。 正则对文本的分析或修改过程为:首先正则表达式应用的是文本字符串(text/string),它会以定义的模式从左到右...
    99+
    2023-10-27
    正则表达式 java 开发语言
  • shell 中小括号、中括号及大括号的区别解析
    目录一、小括号,圆括号()1、单小括号 ()2、双小括号 (( ))二、中括号,方括号[]1、单中括号 []2、双中括号[[ ]]三、大括号、花括号 {}1、常规用法2、几种特殊的替换结构一、小括号,圆括号() 1、单小...
    99+
    2022-06-04
    shell 小括号中括号大括号的区别 shell 小括号中括号大括号
  • shell中小括号、中括号及大括号的区别是什么
    这篇文章主要讲解了“shell中小括号、中括号及大括号的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell中小括号、中括号及大括号的区别是什么”吧!一、小括号,圆括号()1、...
    99+
    2023-06-25
  • 亚马逊账号和服务器不匹配
    这可能是由于您的账号和其他网站的使用协议、隐私政策、数据安全等问题导致的。您需要检查您的使用协议、隐私政策、数据安全等问题,确保您的账号和其他网站的使用协议、隐私政策、数据安全等问题是一致的。 如果您的账号和其他网站的使用协议、隐私政策、...
    99+
    2023-10-27
    亚马逊 账号 不匹配
  • Java怎么移除无效的括号
    这篇文章主要讲解了“Java怎么移除无效的括号”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么移除无效的括号”吧!目录一、题目二、示例三、解法1四、解法2一、题目给你一个由 ‘(&...
    99+
    2023-06-20
  • Java怎么输出有效的括号
    本篇内容主要讲解“Java怎么输出有效的括号”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么输出有效的括号”吧!题目给定一个只包括 '(',')',&#...
    99+
    2023-06-19
  • Java Pattern和Matcher字符匹配方式
    目录Pattern类定义因此,典型的调用顺序是Pattern类方法详解Pattern类使用示例Matcher类定义Matcher类方法详解1、Matcher类提供了三个匹配操作方法2...
    99+
    2024-04-02
  • java类型不匹配如何解决
    当出现Java类型不匹配的情况时,可以采取以下几种解决方法:1. 检查变量类型:确认变量的声明和使用是否一致,例如,如果一个变量被声...
    99+
    2023-09-27
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作