首页 > 其他分享 >刷题笔记

刷题笔记

时间:2023-12-19 18:45:36浏览次数:31  
标签:ch false symbol 栈顶 笔记 括号 stack 刷题

1. 有效的括号_20

题目描述

思路

利用栈。
按顺序遍历,遇到左括号直接入栈;遇到右括号,则与栈顶元素进行匹配,如果栈顶元素为空或者与栈顶元素不匹配,则返回false。
遍历结束如果栈非空,则说明还有左括号未被匹配,返回false。

复杂度

时间复杂度O(n):遍历一遍字符串。
空间复杂的O(n):栈使用线性空间大小。

实现

class Solution {
    public boolean isValid(String s) {
        char[] symbols = s.toCharArray();
        Stack<Character> stack = new Stack<>();

        for (char symbol:symbols){
            //左括号入栈
            if(symbol=='(' || symbol=='[' || symbol=='{') {
                stack.push(symbol);
            } else {    //右括号
                if (stack.isEmpty()) {  //栈为空,说明右括号多余了,不匹配
                    return false;
                }
                char ch = stack.pop();  //栈顶元素左括号出栈,如果与当前右括号不匹配就结束
                if( (ch=='(' && symbol!=')') || (ch=='[' && symbol!=']') || (ch=='{' && symbol!='}')) {
                    return false;
                }
            }
        }
        //栈非空,仍有左括号未被匹配
        return stack.isEmpty();
    }
}

标签:ch,false,symbol,栈顶,笔记,括号,stack,刷题
From: https://www.cnblogs.com/curie/p/17914422.html

相关文章

  • mysql笔记
    MySQL数据库B站资源网盘资源sql数据库提取码:mmmmDB、DBMS、SQL的关系DB:Database,数据库,数据库在硬盘上以文件的形式存在。DBMS:DatabaseManagementSystem,数据库管理系统,如:MySQL,Oracle,DB2,Sybase,SqlServer等。SQL:StructureQueryLanguage,结构化查询语言,是一门标准通用的......
  • 阅读笔记6
    永远以解决问题为导向,而不是仅仅完成任务。从最低级的写好一个功能,到给具体的需求排优先级,甚至到明确真正的需求,到调整开发节奏,一切都由实际的需求和开发能力决定,最终的目的只有一个,那就是解决真正的问题;把程序员当人看,不仅仅是把其他同事当人看,也要把自己当人看。人是会出错的,团......
  • 阅读笔记5
    《代码大全2》的前两章主要介绍了软件构建的基本概念、原则和流程,使我理解和应用代码的意义和方法产生了深刻的影响。在第一章中,作者强调了代码的重要性,并指出编程的目标是生成可执行代码。并通过一系列实例阐述了编程过程中的关键要素,如可读性、可维护性和可测试性。在第二章中......
  • 秦疆的Java课程笔记:78 异常 捕获和抛出异常
    异常处理五个关键词:try,catch,finally,throw,throws写一个会出错的代码:publicclassTest1{publicstaticvoidmain(String[]args){inta=1;intb=0;System.out.println(a/b);}}====运行报错====Exceptionint......
  • 【笔记】2023.12.19:题目选讲
    笔记2023.12.19:题目选讲不会的题目没在这里展现。一共14道题。gym103371IOrganizingColoredSheets猜结论:两个同一行的sharp的间隙的\(\min\)是\(W\)上界,同一列的sharp的间隙的\(\min\)是\(H\)上界,然后相乘。这是假的,是答案上界,过不去样例二。每个\(H\)对......
  • 秦疆的Java课程笔记:77 异常 Error和Exception
    实际工作中,遇到的情况不可能非常完美。比如:写好的某个模块,用户输入不一定符合要求;程序要打开某个文件,但这个文件可能不存在或者格式不对;你要读取数据库的数据,数据可能是空的;程序在跑着,内存或者硬盘满了……等等情况。软件程序在运行过程中,这类例外情况,通称“异常”,英文:Exception......
  • 打工笔记--------------------winform程序报错CLR20r3签名System.I0.IOException
    先看问题编写了一个程序在我本机运行没有问题,放到别人电脑上就有可能报这种错误System.I0.IOException  首先我问了一下ChatPgt:他说:CLR20r3是一个通用的错误代码,表示在.NETFramework中发生了未处理的异常。System.IO.IOException是与输入/输出操作相关的一个常见......
  • 超越巨头:Zephyr-7B领跑7B级模型竞赛,开源且笔记本可运行
    引言在AI界的大语言模型(LLM)竞赛中,Zephyr-7B作为HuggingFaceH4团队的最新力作,展现了令人瞩目的技术突破。它不仅性能超越了700亿参数的LLaMA2模型,更引人注目的是,这一开源模型可在常规笔记本电脑上运行,极大地提高了AI技术的可达性。技术背景Zephyr-7B基于MistralAI的开源大模型Mis......
  • 秦疆的Java课程笔记:76 面向对象 N中内部类
    内部类就是在一个类的内部再定义一个类。比如,在A类中定义一个B类,那么B类相对于A类来说就是内部类;相反,A类相对于B类就是外部类。秦疆老师声明,这小节主要是长长见识,实际编程作业中不推荐下列写法。成员内部类//先写一个有内部类的类=============================publiccl......
  • 【多线程笔记】Channel
    在面对生产者-消费者的场景下,netcore提供了一个新的命名空间System.Threading.Channels来帮助我们更高效的处理此类问题,有了这个Channels存在,生产者和消费者可以各自处理自己的任务而不相互干扰,有利于两方的并发处理,这篇文章我们就来讨论下如何使用System.Threading......