题目描述
给定一个只包括 '(',')','{','}','[',']'
的字符串 s
,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
示例 1:
输入:s = "()"
输出:true
示例 2:
输入:s = "()[]{}"
输出:true
示例 3:
输入:s = "(]"
输出:false
示例 4:
输入:s = "([)]"
输出:false
示例 5:
输入:s = "{[]}"
输出:true
力扣原题目地址:https://leetcode.cn/problems/...
思路分析
阅读了以上题目的要求以后,我们大致可以明白一下几点:
- 首先,括号是成对出现的,有左括号,就有对应的右括号,所以括号字符串的长度一定是2的倍数即偶数,才符合基本条件,即:
s.length % 2 === 0
取模2等于1就是奇数了,肯定是不行的 当出现一个括号的时候,在未来的某一时刻,会出现另一个对的括号,与他成双成对。所以咱们也可以换种方式理解,更有助于我们解题
换种方式理解
这个比喻不太恰当,不过有助于理解题目