LeetCode(20)有效的括号
今天是小呆刷题的第9天,今天的题目是:力扣(LeetCode)的第20题,有效的括号
题目描述
给定一个只包括
'('
,')'
,'{'
,'}'
,'['
,']'
的字符串s
,判断字符串是否有效。有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
示例:
1 |
|
提示:
1 <= s.length <= 10^4
s
仅由括号'()[]{}'
组成
解题思路
小呆做这道题的时候,5分钟内没解出来,果断看评论区和题解。这道题的主流思路是用栈来解决,由于括号都是成对出现的,所以我们可以让左侧的括号入栈,当遇到右侧的括号时,出栈匹配,能匹配到,就接着循环,直到所有括号都匹配完或者出现不匹配为止。在JavaScript
中我们很容易用数组模拟一个栈。步骤如下:
- 判断
s.length
是否为双数,如果是单数,直接返回false
- 循环字符串,遇到左侧括号就执行入栈
- 遇到右侧括号,出栈比对,匹配绩效执行,否则退出循环
false
- 所有括号匹配完,栈为空,则符合条件
老规矩,上gif图来辅助理解:
1 |
|
小结
刷题的第9天,每当遇到一个不会的题,其实对于我们来说都是一件好事,这意味着你今天又可以获得一些知识/思路。不管是在工作还是生活中,一定不要觉得自己不行/失败。更多的时候,可能我们只比别人多努力1分钟,就能甩过1000个同龄人!加油吧!
引用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小呆&小萌的情侣博客!
评论