您的位置:首页 > 汽车 > 新车 > 广州平面设计师招聘_同城app开发多少钱_深圳抖音推广公司_佛山网站建设工作

广州平面设计师招聘_同城app开发多少钱_深圳抖音推广公司_佛山网站建设工作

2025/4/4 7:05:05 来源:https://blog.csdn.net/weixin_45799371/article/details/145714908  浏览:    关键词:广州平面设计师招聘_同城app开发多少钱_深圳抖音推广公司_佛山网站建设工作
广州平面设计师招聘_同城app开发多少钱_深圳抖音推广公司_佛山网站建设工作

leetcode 20
在这里插入图片描述

思路

利用栈来解答,因为有效的括号是成对出现的,所以每一个[都会对应着一个],每一个(都会对应着一个),每一个{都对应着}
所以当出现( { [ 这些符号时,我们把相对应的另一半push到栈中,如果出现的不是这些符号,那就是出现的另一半符号,此时我们需要出栈,判断pop出的符号和当前符号是否相等,如果相等说明成功匹配到另一半,如果不相等则说明匹配错误,例如符号'([)]'就是无效的,当匹配到)的时候,pop出来的元素是],不匹配,所以会直接return false,另外还有一种情况是,stack中的已经没有元素了,但是还有有括号的出现,那一定也是不符合的,比如这样的例子:)(,也是无效括号
最后字符串遍历完成,如果stack中仍然存在元素,说明左括号多了,比如:(((),仍然无效

解答

var isValid = function(s) {let stack = [];for(let i = 0;i < s.length;i++){if(s[i] === '('){stack.push(')')}else if(s[i] === '{'){stack.push('}')}else if(s[i] === '['){stack.push(']')}else if(!stack.length || s[i]!==stack.pop()){return false;}}return stack.length === 0;
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com