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

【力扣】stack容器的探索之有效的括号

作者:狮子也疯狂
专栏:《算法详解》
愿你生如夏花之绚烂,幸运永远与你相伴,疯狂常在。
在这里插入图片描述

目录

  • 一. 🦁 Stack容器的来历
    • 1.1 操作栈的方法
  • 二. 🦁 Stack的使用
    • 2.1 题目
    • 2.2 分析
    • 2.3 详细算法实现
    • 2.4 力扣AC截图
  • 三. 🦁 总结

一. 🦁 Stack容器的来历

Stack 栈容器Vector 的一个子类,它实现了一个标准的后进先出(LIFO:Last In Frist Out)的栈。它通过 5 个操作方法对 Vector 进行扩展,允许将向量视为堆栈。

1.1 操作栈的方法

Modifier and TypeMethod and Description
booleanenpty() :判断该栈是否为空
Epeek(): 查看栈顶元素
Epop(): 删除栈顶元素,并返回该值
Epush(E item):将元素推入栈顶
intsearch(object o) : 返回该元素的位置

二. 🦁 Stack的使用

这里以力扣第20题为实战案例:查看

2.1 题目

给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号

2.2 分析

这一道题明显是可以使用栈的结构来做,实例化一个栈(Stack< String >),对字符串做一次循环遍历,在遍历过程中,遇到左括号(无论是什么左括号({ ( [),都将其对应的右括号放进stack容器中;如果遇到右括号c,则会从stack顶中弹出一个栈顶元素x,将x与c比较,使用flag这一布尔值(默认为true,即匹配)来判断是否匹配,如果不匹配则修改flag为false。到最后遍历结束,如果stack ——>!empty(),则也修改flag为false,最后返回flag。
注意到有效字符串的长度一定为偶数,因此如果字符串的长度为奇数,我们可以直接返回 False,省去后续的遍历判断过程。

2.3 详细算法实现

class Solution {public boolean isValid(String s) {Stack<String> stack = new Stack<>();boolean flag = true;for(int i = 0;i<s.length();i++){char str = s.charAt(i);if(str == '('){stack.push(")");}if(str == '['){stack.push("]");}if(str == '{'){stack.push("}");}if(str == ')'||str == ']'||str == '}'){if(stack.empty()){return false;}String c = stack.pop();if(c.charAt(0) != str){flag = false;break;}}}if(!stack.empty()){flag = false;}return flag;}
}

2.4 力扣AC截图

在这里插入图片描述

三. 🦁 总结

Leetcode的一道难度为简单的算法题,可以帮助大家很好的理解Stack这个数据结构,希望大家喜欢。更多专栏请点击

专栏名字
🔥Elasticsearch专栏es
🔥spring专栏spring开发
redis专栏redis学习笔记
🔥项目专栏项目集锦
修bug专栏bug修理厂

相关文章:

【力扣】stack容器的探索之有效的括号

作者&#xff1a;狮子也疯狂 专栏&#xff1a;《算法详解》 愿你生如夏花之绚烂&#xff0c;幸运永远与你相伴&#xff0c;疯狂常在。 目录一. &#x1f981; Stack容器的来历1.1 操作栈的方法二. &#x1f981; Stack的使用2.1 题目2.2 分析2.3 详细算法实现2.4 力扣AC截图三…...

【Elsevier出版社】中科院2区,SCIEEI 双检,已有发表案例,3个月左右录用

1区智能传感器类SCIE&EI 【期刊简介】IF&#xff1a;5.0-6.0&#xff0c;JCR1区&#xff0c;中科院2区&#xff0c;SCI&EI 双检&#xff0c;正刊 【参考周期】3个月左右录用 【截稿日期】2023.5.30 【征稿领域】有关人工智能与传感器的相关研究均可 包括但不限于&#…...

基于明道云平台重建医院管理流程

一、龙华区医疗信息化建设情况 首先&#xff0c;给大家介绍一下龙华区医疗信息化建设的情况&#xff0c;龙华区位于深圳市的中部&#xff0c;目前下属3家公立医院&#xff0c;2家公共卫生机构。2017年&#xff0c;龙华区提出了建设智慧龙华总体框架方案&#xff0c;龙华区卫生…...

【蓝桥杯嵌入式】STM32定时器的配置,解析预分频系数和重装载值与时钟频率的关系

&#x1f38a;【蓝桥杯嵌入式】专题正在持续更新中&#xff0c;原理图解析✨&#xff0c;各模块分析✨以及历年真题讲解✨都在这儿哦&#xff0c;欢迎大家前往订阅本专题&#xff0c;获取更多详细信息哦&#x1f38f;&#x1f38f;&#x1f38f; &#x1fa94;本系列专栏 - 蓝…...

ChatGPT API 低价上线,开发者可以人手一个了?

千呼万唤&#xff0c;ChatGPT API来了&#xff01; 不仅首发&#xff0c;价格居然还有惊喜&#xff0c;0.002美元/每1000 token&#xff0c;并将价格降低90%&#xff0c;直接打了1折。OpenAI官方还表示&#xff0c;gpt-3.5-turbo目前的版本代号是gpt-3.5-turbo-0301&#xff0…...

品牌营销策略 | 科学经营合作伙伴关系的5个要素

在管理众多的合作伙伴项目时&#xff0c;企业会遇到很多的问题&#xff0c;比如&#xff0c;数据信息分散凌乱、手动操作繁琐重复和处理环节粗放等。这将耗费公司大量的人力物力&#xff0c;严重影响大数据的综合分析和利用。因此&#xff0c;企业要科学管理好企业的合作伙伴关…...

【剑指offer-C++】JZ20:表示数值的字符串

【剑指offer-C】JZ20&#xff1a;表示数值的字符串题目描述解题思路题目描述 描述&#xff1a;请实现一个函数用来判断字符串str是否表示数值&#xff08;包括科学计数法的数字&#xff0c;小数和整数&#xff09;。 科学计数法的数字(按顺序&#xff09;可以分成以下几个部分…...

【NLP相关】深度学习领域不同编程IDE对比

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️&#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…...

定制ubuntu的docker镜像

ssh登录jdkmavenvimpingcurlFROM ubuntu:22.04RUN apt-get updateRUN apt-get install -y \vim \inetutils-ping \openssh-server \curl \openjdk-8-jdk \mavenRUN mkdir /var/run/sshdRUN echo root:root |chpasswdRUN sed -ri s/^#?PermitRootLogin\s.*/PermitRootLogin yes…...

我的 System Verilog 学习记录(8)

引言 本文简单介绍 SystemVerilog 的接口。 前文链接&#xff1a; 我的 System Verilog 学习记录&#xff08;1&#xff09; 我的 System Verilog 学习记录&#xff08;2&#xff09; 我的 System Verilog 学习记录&#xff08;3&#xff09; 我的 System Verilog 学习记…...

详解JAVA字节码

目录 1.概述 2.字节码文件构成 2.1.魔数 2.2.版本号 2.3.常量池 2.4.访问标志 2.5.索引 2.6.字段表 2.7.方法表 3.字节码指令 3.1.概述 3.2.指令分类 3.2.1.加载存储指令 3.2.2.运算指令 3.2.3.其他指令 3.3.完整指令工作流程 4.字节码保护 1.概述 以往的编程…...

前端利用emailjs发送邮件

最近有一个需求&#xff0c;前端发送一个form表单到一个邮箱&#xff0c;找了一圈发现emailjs还不错就使用他了。首先emailjs官网注册一个账号注册完之后创建一个邮件服务&#xff08;我这里使用的是谷歌邮箱&#xff09;链接谷歌邮箱账户 然后创建服务接下来就要创建一个邮件的…...

16 Nacos服务端服务注册源码分析

Nacos服务端服务注册源码分析 服务端调用接口 我们已经知道客户端在注册服务的时候实际上是调用的NamingService.registerInstance这个方法来完成实例的注册&#xff0c;而且在最后我们也告诉了大家实际上从本质上讲服务注册就是调用的对应接口nacos/v1/ns/instance&#xff…...

Spring Boot2中如何优雅地个性化定制Jackson

概述 本文的编写初衷&#xff0c;是想了解一下Spring Boot2中&#xff0c;具体是怎么序列化和反序列化JSR 310日期时间体系的&#xff0c;Spring MVC应用场景有如下两个&#xff1a; 使用RequestBody来获取JSON参数并封装成实体对象&#xff1b;使用ResponseBody来把返回给前…...

2023年全国最新食品安全管理员精选真题及答案11

百分百题库提供食品安全管理员考试试题、食品安全员考试预测题、食品安全管理员考试真题、食品安全员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 101.婴幼儿配方乳粉的产品配方应当经&#xff08;&#xff09;部门注册。…...

【脚本】用于得到某个文件/文件夹所有文件的存储大小(MB单位)

知识点 来自在线转换换算网页&#xff1a;在线文件大小(bit,bytes,KB,MB,GB,TB)转换换算 电脑中存储常用的单位&#xff1a; 1Byte(Byte 字节) 8Bit 1KB (Kilobyte 千字节) 1024Byte 1MB (Megabyte&#xff0c;兆字节&#xff0c;简称“兆”) 1024KB 1GB (Gigabyte&am…...

19- CNN进行Fashion-MNIST分类 (tensorflow系列) (项目十九)

项目要点 Fashion-MNIST总共有十个类别的图像。代码运行位置 CPU: cputf.config.set_visible_devices(tf.config.list_physical_devices("CPU"))fashion_mnist keras.datasets.fashion_mnist # fashion_mnist 数据导入训练数据和测试数据拆分: x_valid, x_train…...

【正点原子FPGA连载】第二十二章IP封装与接口定义实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十二章IP封装…...

【ElasticSearch8.X】学习笔记(二)

【ElasticSearch8.X】学习笔记四、基础操作4.1、索引操作4.1.1、创建索引4.1.2、查询指定索引4.1.3、查询所有索引4.1.4、 删除索引4.2、文档操作4.2.1、创建文档4.2.2、查询文档4.2.3、修改文档4.2.4、删除文档4.2.5、查询所有文档4.3、数据搜索4.3.1、匹配查询文档4.3.2、匹配…...

Ubuntu22.04安装、配置、美化、软件安装、配置开发环境

Ubuntu22.04安装、配置、美化、软件安装、配置开发环境 一、Ubuntu、Windows11&#xff08;10&#xff09;双系统安装 因为ubuntu的安装网上的教程特别多了&#xff0c;所以这里不做赘述&#xff0c;推荐使用小破站这个up主的教程&#xff1a;Windows 和 Ubuntu 双系统从安装到…...

基于DGX OpenClaw Stack构建本地AI智能体:从硬件调优到生产部署

1. 项目概述&#xff1a;一站式本地AI智能体栈如果你和我一样&#xff0c;对把大语言模型&#xff08;LLM&#xff09;真正“养”在自己的硬件上&#xff0c;构建一个功能完整、数据私有的智能助手有执念&#xff0c;那么你很可能已经踩过不少坑了。从选模型、搭服务、配工具链…...

大模型学习指南:小白也能轻松掌握AI,提升效率与收入(收藏版)

本文针对想学习大模型的普通用户&#xff0c;破除学习AI的常见误区&#xff0c;提供实用学习路径。文章强调从实际应用场景出发&#xff0c;而非深入技术原理&#xff0c;介绍了如何利用AI提升办公效率、进行内容创作、结合本职工作以及构建个人智能体助手。此外&#xff0c;文…...

思考的快与慢:模型的“即时回答”与“深思熟虑”

上一篇文章我们学会了如何“使唤”模型&#xff1a;同步、异步、批量、流式&#xff0c;一通操作下来&#xff0c;你已经是调接口的好手了。但很快你可能会发现一个有意思的现象——同样是回答问题&#xff0c;有时候模型快到几乎零秒响应&#xff0c;有时候却要停顿好几秒甚至…...

AI代理工具化新范式:基于MCP协议的模块化连接器实践

1. 项目概述&#xff1a;一个面向AI代理的模块化连接器最近在折腾AI应用开发&#xff0c;特别是围绕AI Agent&#xff08;智能体&#xff09;的生态构建时&#xff0c;发现一个挺普遍的问题&#xff1a;如何让这些Agent高效、安全地连接和使用外部工具与服务&#xff1f;无论是…...

AD19原理图编译总报off grid pin警告?手把手教你从库源头搞定封装与栅格对齐

AD19原理图编译报off grid pin警告&#xff1f;从库源头解决封装与栅格对齐问题 每次在AD19中编译原理图时&#xff0c;看到那一长串的"off grid pin"警告&#xff0c;是不是感觉特别烦躁&#xff1f;这些看似无害的警告实际上可能隐藏着严重的设计隐患。作为一位经历…...

别再傻傻分不清!Ansys Workbench三大建模界面(SCDM/DM/Mechanical)保姆级对比与选用指南

Ansys Workbench三大建模界面深度解析&#xff1a;如何根据项目需求选择最佳工具 在工程仿真领域&#xff0c;Ansys Workbench作为行业标杆软件套件&#xff0c;其内置的三大建模界面——SpaceClaim&#xff08;SCDM&#xff09;、DesignModeler&#xff08;DM&#xff09;和Me…...

别再只盯着原理图了!用Python+OpenCV动手模拟激光三角测距(斜射/直射对比)

用PythonOpenCV模拟激光三角测距&#xff1a;斜射与直射的实战对比 激光三角测距技术听起来高大上&#xff0c;但真正理解它的精髓往往需要跳出公式推导的泥潭。作为一名长期在工业检测领域摸爬滚打的技术人员&#xff0c;我发现用代码模拟物理过程是最有效的学习方式。本文将…...

机器学习之随机森林详解

摘要随机森林&#xff08;Random Forest&#xff09;是一种基于Bagging集成学习思想的 ensemble method&#xff0c;通过构建多棵决策树并综合其预测结果来实现分类和回归任务。本文详细介绍了随机森林的核心原理、关键超参数、OOB误差估计机制&#xff0c;以及其在特征重要性分…...

利用大模型分歧优化NLP标注

In this blogpost I’d like to talk about large language models. There’s a bunch of hype, sure, but there’s also an opportunity to revisit one of my favourite machine learning techniques: disagreement. 在本文中&#xff0c;我想讨论大语言模型。虽然存在大量炒…...

科研人狂喜!AI生成的位图可以转矢量图了

今天给大家分享我最近挖到的宝藏科研工具&#xff1a;MedPeer「图片创作」——国内领先的垂直领域AI科研绘图工具&#xff0c;刚好解决我们科研人最头疼的几个痛点。尤其是它的人工绘图转换服务&#xff0c;简直是帮我解决了大麻烦&#xff0c;必须给大家捋捋明白。我们科研人绘…...