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

LeetCode20

 一个新手小白开始算法的学习之路,以后会不定期分享个人做完一些题目的笔记,使用语言为JavaScript

//声明一个名为isValid的函数,接收一个参数s(要检查的字符串)
let isValid = function(s) {//初始化栈//创建一个空数组stack,用来存储遇到的括号( (,{,[ )let stack = [];//开始遍历,i是索引号(从0开始,所以从length-1结束)for( let i=0;i<s.length;i++) {//将当前字符存储在变量start中(可能是任何类型的符号)const start = s[i];if( s[i] == '(' || s[i] == '{' || s[i] =='[' ){ //如果是开放字符( (,{,[ ),就压入栈stack.push( s[i] );//如果不是,则end获取栈顶元素(最后压入的开放括号)}else{const end = stack[ stack.length-1 ];if( start ==")" && end == '(' || start =="]" && end == '[' || start =="}" && end == '{' ){//若符合,则出栈stack.pop();}else{//如果闭合括号与栈顶开放括号不匹配:立即返回false,表示字符串无效return false;}}}//遍历完所有字符后:
//如果栈为空(stack.length == 0),说明所有开放括号都有匹配的闭合括号,返回true
//如果栈不为空,说明有未匹配的开放括号,返回falsereturn stack.length == 0;
};
let isValid = function(s) {let stack = [];for( let i=0;i<s.length;i++) {const start = s[i];if( s[i] == '(' || s[i] == '{' || s[i] =='[' ){stack.push( s[i] );}else{const end = stack[ stack.length-1 ];if( start ==")" && end == '(' ||start =="]" && end == '[' ||start =="}" && end == '{'){stack.pop();}else{return false;}}}return stack.length == 0;};

例子

这个函数就像是一个严格的"括号管家",专门检查你写的括号是否都正确配对。想象你在玩一个"开箱关箱"的游戏:

游戏规则

  1. 每次你打开一个箱子((, {, [),管家就会记在小本本(栈)上
  2. 每次你关闭一个箱子(), }, ]),管家就会:
    • 检查是否和最后一次打开的箱子匹配
    • 匹配就划掉最后一条记录
    • 不匹配就直接宣布游戏失败

分步情景模拟

http://www.xdnf.cn/news/15590.html

相关文章:

  • 边界路由器
  • Baumer工业相机堡盟工业相机如何通过YoloV8模型实现人物识别(C#)
  • 如何做好DNA-SIP?
  • Redis完全指南:从基础到实战(含缓存问题、布隆过滤器、持久化及Spring Boot集成)
  • 数据结构 栈(2)--栈的实现
  • 4.PCL点云的数据结构
  • 「Chrome 开发环境快速屏蔽 CORS 跨域限制详细教程」*
  • springboot跨域问题 和 401
  • 人工智能基础知识笔记十四:文本转换成向量
  • Android 实现:当后台数据限制开启时,仅限制互联网APN。
  • 什么是“数据闭环”
  • Docker-Beta?ollama的完美替代品
  • MySQL高可用集群架构:主从复制、MGR与读写分离实战
  • TDengine 的可视化数据库操作工具 taosExplorer(安装包自带)
  • VMware Workstation Pro 17下载安装
  • VR全景园区:开启智慧园区新时代
  • 基于C#+SQlite开发(WinForm)个人日程管理系统
  • 【leetcode】852. 山脉数组的封顶索引
  • 树莓派Qt 安装
  • CDSS系统升级“可视化解释-智能反馈-临床语言“三位一体设计架构设计分析
  • nginx代理websocket请求
  • 【华为】交换机vlan互访实验
  • 语雀编辑器内双击回车插入当前时间js脚本
  • 取消office word中的段落箭头标记
  • Java零基础快速入门
  • Vue3入门-组件及组件化
  • Kafka——无消息丢失配置怎么实现?
  • SpringMVC核心注解:@RequestMapping详解
  • java-字符串
  • modelscope ProxyError: HTTPSConnectionPool(host=‘www.modelscope.cn‘, port=443)