算法通关村第四关-黄金挑战栈的经典问题

news2024/11/16 9:42:29

括号匹配问题

描述 : 

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

有效字符串需满足:

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

题目 :

LeetCode 20.有效的括号 : 

20. 有效的括号

分析 :

本题还是比较简单的,其中比较麻烦的是如何判断两个符号是不是一组的,我们可以用哈希表将所有符号先存储,左半边做key,右半边做value。遍历字符串的时候,遇到左半边符号就入栈,遇到右半边符号就与栈顶的符号比较,不匹配就返回false

解析 :

LeetCode

class Solution {
    public boolean isValid(String s) {
        //创建栈
        Stack<Character> sk = new Stack<>();

        //创建Map
        HashMap<Character,Character> map = new HashMap();
        map.put('(',')');
        map.put('[',']');
        map.put('{','}');

        for(int i =0; i< s.length();i++){
            char c = s.charAt(i);
            //如果是左边就压栈
            if(map.containsKey(c)){
                sk.push(c);
            }else{
                //否则就弹栈,看是否和左边匹配
                
                if(!sk.isEmpty()){
                    if(c != map.get(sk.pop())){
                        return false;
                    }
                }else{
                    //如果栈是空的就不匹配
                    return false;
                }
            }
        }
        
        //如果栈里是空的证明都匹配了 , 栈里不是空的证明有一个单的 不匹配
        return sk.isEmpty();
    }
}

这关就到这里 , 下期一关见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1152338.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】内存精讲

TOC 目录 程序在计算机中的运行方式 CPU的指令 虚拟内存是什么&#xff1f; CPU的数据处理能力 &#xff08;1&#xff09;16位CPU &#xff08;2&#xff09;32位CPU &#xff08;3&#xff09;64位CPU 编译模式 32位编译模式 64位编译模式 C语言内存对齐 内存分…

终于有人把腾讯云轻量服务器“月流量”说明白了

腾讯云轻量服务器月流量什么意思&#xff1f;月流量是指轻量服务器限制每月流量的意思&#xff0c;不能肆无忌惮地使用公网&#xff0c;流量超额需要另外支付流量费&#xff0c;上海/广州/北京等地域的轻量服务器月流量不够用超额部分按照0.8元/GB的价格支付流量费。阿腾云aten…

2011-2021年上市公司百度指数数据

2011-2021年上市公司百度指数数据 1、时间&#xff1a;2011-2021年 2、指标&#xff1a;股票代码、股票名称、年份、类型、PC移动、PC端、移动端 3、来源&#xff1a;百度指数 4、范围&#xff1a;上市公司 5、样本量&#xff1a;7.4W 6、指标解释&#xff1a;百度指数&a…

为什么要进行兼容性测试? 常见方法有哪些?

在当今数字化的世界中&#xff0c;用户通过各种设备和平台访问应用程序和网站。为了确保用户体验的一致性和质量&#xff0c;兼容性测试成为了软件开发周期中不可或缺的一环。本文将深入探讨什么是兼容性测试&#xff0c;为什么它是如此重要&#xff0c;以及一些常见的兼容性测…

各传输介质详细知识点

一.百兆网传输介质 快速以太网(802.3u) 100Base-T2 电缆&#xff1a;2对3类UTP 最大段长&#xff1a;100m 特性阻抗&#xff1a;100 100Base-T4 电缆&#xff1a;4对3类UTP 最大段长&#xff1a;100m 特点&#xff1a;8B/6T&#xff0c;NRZ编码 特性阻抗&#xff1a;1…

【多线程面试题十九】、 公平锁与非公平锁是怎么实现的?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a; 公平锁与非公平锁是怎么…

安装OPENCMS过程记录

今天尝试安装个人网站&#xff0c;或者说是内容管理系统&#xff0c;wordpress 是PHP的&#xff0c;所以上网找了一个免费的&#xff0c;在知乎上基于Java的开源CMS有哪些推荐&#xff0c;各自特点是什么 - 知乎 (zhihu.com) 找了这个opencms&#xff0c;据说是免费&#xff0…

腾讯云轻量应用服务器“月流量”不够用怎么办?

腾讯云轻量应用服务器“月流量”不够用怎么办&#xff1f;超额部分支付流量费&#xff0c;价格为0.8元/GB。腾讯云轻量服务器月流量什么意思&#xff1f;月流量是指轻量服务器限制每月流量的意思&#xff0c;不能肆无忌惮地使用公网&#xff0c;流量超额需要另外支付流量费&…

【设计模式】第8节:结构型模式之“适配器模式”

一、简介 适配器模式是用来做适配的&#xff0c;它将不兼容的接口转换为可兼容的接口&#xff0c;让原本由于接口不兼容而不能一起工作的类可以一起工作。 适配器模式角色&#xff1a; 请求者client&#xff1a;调用服务的角色目标Target&#xff1a;定义了Client要使用的功…

前端开发必备技能!用简单CSS代码绘制三角形,提升用户体验

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 一、前…

【流 Stream】数据传输:字节流与字符流详解 文件读写必备基础知识!!!

目录 0 引言1 流 Stream1.1 定义与作用1.2 流的分类1.3 字节流与字符流扩展知识 2 IO编程实践2.1 字节流的使用小结 2.2 字符流的使用2.3 总结 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;C专栏&#x1f4dc; 相关文章&#xff1a;字符编码&am…

第五章 I/O管理 六、I/O核心子系统

目录 一、核心子系统 1、I/O调度 2、设备保护 二、假脱机技术 1、脱机&#xff1a; 2、假脱机&#xff08;SPOOLing技术&#xff09;&#xff1a; 3、应用&#xff1a; 1.独占式设备&#xff1a; 2.共享设备&#xff1a; 4、共享打印机原理分析 三、总结 一、核心子系…

Android 驱动学习调试

1 Android 驱动代码编译 参考https://www.sharetechnote.com/html/Linux_DeviceDriver_Programing.html#Device_Driver_HelloWorld编译ko文件调试驱动代码&#xff0c;将ko文件push到手机上验证 相关C文件testdriver.c #include <linux/init.h> #include <linux/mod…

新恶意软件使用 MSIX 软件包来感染 Windows

人们发现&#xff0c;一种新的网络攻击活动正在使用 MSIX&#xff08;一种 Windows 应用程序打包格式&#xff09;来感染 Windows PC&#xff0c;并通过将隐秘的恶意软件加载程序放入受害者的 PC 中来逃避检测。 Elastic Security Labs 的研究人员发现&#xff0c;开发人员通常…

华为机试题:HJ8 合并表记录

目录 第一章、算法题1.1&#xff09;题目描述1.2&#xff09;解题思路与答案1.3&#xff09;牛客链接 友情提醒: 先看文章目录&#xff0c;大致了解文章知识点结构&#xff0c;点击文章目录可直接跳转到文章指定位置。 第一章、算法题 1.1&#xff09;题目描述 题目描述&…

谁知道腾讯云轻量服务器“月流量”是什么意思?

腾讯云轻量服务器月流量什么意思&#xff1f;月流量是指轻量服务器限制每月流量的意思&#xff0c;不能肆无忌惮地使用公网&#xff0c;流量超额需要另外支付流量费&#xff0c;上海/广州/北京等地域的轻量服务器月流量不够用超额部分按照0.8元/GB的价格支付流量费。阿腾云aten…

cocos tilemap的setTileGIDAt方法不实时更新

需要取消勾选 Enable Culling。同时代码添加&#xff1a;markForUpdateRenderData函数。 floor.setTileGIDAt(102427,newP.x,newP.y,0); //中心 floor.markForUpdateRenderData(); 具体问题参考官网说明&#xff1a; Cocos Creator 3.2 手册 - 项目设置

软考网工历年简答题汇总(2016下半年~2023年上半年)

目录 2016年下半年 2018年上半年 2018年下半年 2021年上半年 2022年上半年 2022年下半年 2023年上半年 2016年下半年 试题一&#xff1a; 【问题 3】若地址规划如图 1-1 所示&#xff0c;从IP 规划方案看该地址的配置可能有哪些方面的考虑&#xff1f; 答案&#xff…

博客系统的前后端实现

前面的学习中, 我们基于 HTML, CSS, JavaScript 实现了一个简单的博客系统的页面. 接下来我们基于博客系统页面来实现一个带服务器版本的博客程序. 1.准备工作 1.创建项目 2.引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns…