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

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.dtcms.com/a/283665.html

相关文章:

  • 2D视觉系统标定流程与关键要求
  • 不同相机CMOS噪点对荧光计算的影响
  • 前端设计模式应用精析
  • Java零基础快速入门
  • Python应用指南:使用PyKrige包实现ArcGIS的克里金插值法
  • Ceph OSD.419 故障分析
  • git的cherry-pick
  • AI安全威胁之MCP Server投毒攻击实践
  • Git 多人协作实战:从基础操作到分支管理全流程记录
  • LiteSQL:让C++与数据库无缝对接的ORM利器
  • 物联网主机在化工园区安全风险智能化管控平台中的应用
  • 2025TGRS多尺度稀疏交叉注意力网络
  • 如何在PyCharm中删除虚拟环境
  • 建立框架思维
  • 锂电池制造行业MES特色解决方案:差异化生产管控与智能工厂实践
  • 深入理解Map.Entry.comparingByValue()和Map.Entry.comparingByKey()
  • Java中excel字典转换
  • Java 设计模式及应用场景
  • RocketMq集群高可用
  • ​​深入理解进程状态:从运行到僵尸​
  • 学习软件测试掌握什么基本知识?
  • 数字经济专业核心课程解析:从理论到实践的学习框架
  • C/C++---rdbuf()函数
  • parallels desktop windows win10无法复制文件无法共享剪切板
  • 利用node.js在本地搭建简易http服务器
  • QT跨平台应用程序开发框架(10)—— Qt窗口
  • 【C#】Vscode中C#工程如何引用自编写的dll
  • React hooks——useReducer
  • 端到端神经网络视频编解码器介绍
  • 神经网络常见激活函数 14-Mish函数