安徽网站建设认准-晨飞网络知名品牌vi案例分析
2026/1/8 4:56:08 网站建设 项目流程
安徽网站建设认准-晨飞网络,知名品牌vi案例分析,asp网站转手机站,做厂房出租有那些推广网站目录 题目要求#xff1a; 解法思路 复杂度 code 栈的理解 idea #x1f3ac; 括号匹配的动画想象 题目要求#xff1a; 给定一个只包括 (#xff0c;)#xff0c;{#xff0c;}#xff0c;[#xff0c;] 的字符串 s #xff0c;判断字符串是否有效。 有效字…目录题目要求解法思路复杂度code栈的理解idea 括号匹配的动画想象题目要求给定一个只包括(){}[]的字符串s判断字符串是否有效。有效字符串需满足左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。解法思路使用栈数据结构遍历字符串的每个字符。如果是左括号(、[、{压入栈。如果是右括号检查栈顶的左括号是否与之匹配若栈为空 → 无效右括号多余栈顶括号不匹配 → 无效匹配 → 弹出栈顶元素继续遍历完成后如果栈为空 → 有效否则无效左括号多余复杂度时间复杂度O(n)每个字符入栈或出栈一次。空间复杂度O(n)最坏情况下全部左括号入栈。code/** * param {string} s * return {boolean} */ var isValid function (s) { const arr [] for (let i 0; i s.length; i) { const c s[i] if (c ( || c { || c [) { arr.push(c) } else { if (!arr.length) return false const top arr[arr.length - 1] if (top ( c ) || top { c } || top [ c ]) { arr.pop() // 出栈 } else { return false } } } return arr.length 0 };栈的理解idea栈就像一个弹簧单托盘餐架自助餐厅里常见的那种只有一个开口只能在最上面放盘子或取盘子后进先出最后放上去的盘子会最先被拿走只能看到最上面的盘子不把上面的拿走就拿不到下面的在此题括号匹配问题中左括号放盘子压栈push右括号取盘子弹栈pop但必须和刚放的盘子匹配类型 括号匹配的动画想象以({[]})为例步骤1: ( → 栈[ ( ] ↑ 步骤2: { → 栈[ (, { ] ↑ 步骤3: [ → 栈[ (, {, [ ] ↑ 步骤4: ] → 匹配栈顶[弹出 → 栈[ (, { ] ↑ 步骤5: } → 匹配栈顶{弹出 → 栈[ ( ] ↑ 步骤6: ) → 匹配栈顶(弹出 → 栈[ ] ↑ 结束 → 栈空 ✅ 有效

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询