经典括号匹配问题——你真的明白了吗?

 ced485cbb11e458d81a746890b32cf3f.gif

作者:渴望力量的土狗

博客主页:渴望力量的土狗的博客主页

专栏:手把手带你刷牛客

工欲善其事必先利其器,给大家介绍一款超牛的斩获大厂offer利器——牛客网

点击免费注册和我一起刷题吧

目录

前言:

题目描述: 

算法思想及解析:

完整代码实现:


前言:

括号匹配问题是经典中的经典,是学习栈的经典例题,今天就再解剖一下这一经典例题,且看下文!

利用LeetCode的经典题目,详细揭开括号匹配问题的神秘面纱。

题目链接:有效的括号

题目描述: 

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

有效字符串需满足:

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

示例 1:

输入: “()”
输出: true

示例 2:

输入: “()[]{}”
输出: true

示例 3:

输入: “(]”
输出: false

 算法思想及解析:

经典括号匹配问题——你真的明白了吗?_第1张图片

注意这一段代码:经典括号匹配问题——你真的明白了吗?_第2张图片 

括号一定是匹配的,要不然是会出错的。

还有别忘记再判断栈是否为空了

经典括号匹配问题——你真的明白了吗?_第3张图片

完整代码实现:

class Solution {
    public boolean isValid(String s) {

            Stackstack=new Stack<>();

            for(int i=0;i

 代码调试无误:

经典括号匹配问题——你真的明白了吗?_第4张图片

你可能感兴趣的:(每日一道LeetCode,数据结构与算法,算法,leetcode,java,栈)