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

算法-栈括号匹配

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

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

有效字符串需满足:

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

示例 1:

输入:s = "()"

输出:true

示例 2:

输入:s = "()[]{}"

输出:true

示例 3:

输入:s = "(]"

输出:false

示例 4:

输入:s = "([])"

输出:true

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成

算法如下:

import java.util.HashMap;
import java.util.Map;
import java.util.Stack;

public class Solution {
    public boolean isValid(String s) {
        if(s.length()%2!=0)
        {
            return false;
        }else {
            //用map存储}{、][、)(
            Map<Character, Character> map=new HashMap<>();
            map.put(')','(');map.put('}','{');map.put(']','[');
            //用栈存储左括号
            Stack<Character> stack1=new Stack<>();
            int L=s.length();
            for(int i=0;i<L;i++)
            {
                if(s.charAt(i)=='{'||s.charAt(i)=='['||s.charAt(i)=='('){
                    stack1.push(s.charAt(i));
                }else {
                    if(stack1.empty())
                    {
                        return false;
                    }
                    if(map.get(s.charAt(i))==stack1.pop())
                    {
                    }else {
                        return false;
                    }
                }
            }
            if(!stack1.empty()){
                return false;
            }

        }

        return true;
    }
}


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

相关文章:

  • Go语言的游戏开发
  • 视点坐标及鼠标交点坐标的信息显示(七)
  • HBuilderX中uni-app打开页面时,如何用URL传递参数,Query参数传递
  • docker拉取失败received unexpected Http status:500 Internal Server Error
  • HTML之JavaScript对象
  • Ubuntu 22.04.5 LTS 安装企业微信,(2025-02-17安装可行)
  • 后端开发:高效数据库查询优化实战指南
  • TensorFlow 和 PyTorch 哪个更适合新手学习?
  • Ollmao (OH-luh-毛程序包及源码) 是一款原生 SwiftUI 应用程序,它与 Ollama 集成,可在 Mac 上本地运行强大的 AI 模型
  • 医院药品管理系统|基于SprinBoot+vue的医院药品管理系统(源码+数据库+文档)
  • 同花顺数据爬取并生成K线
  • 问题解决:vmware设置共享文件夹后找不到/mnt/hgfs
  • python学习之爬虫基础
  • Golang | 面试题每日一练 (1)
  • huggingface/pytorch-image-models
  • 二级等保项目设备清单及高风险项整改方向
  • vue3.x的Suspense详细解读
  • CAP与BASE:分布式系统设计的灵魂与妥协
  • Python语言的嵌入式系统
  • ubuntu在线安装PostgreSQL(pgsql)