LeetCode69 - 有效的括号
📝 题目描述
题目链接:有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
示例:
1 | 示例 1: |
提示:
1 <= s.length <= 10^4s 仅由括号 '()[]{}' 组成
💡 解题思路
方法一:栈
思路很简单,遇见左括号,直接入栈;遇见右括号:
- 判断栈是否为空,为空则说明上来就是右括号,直接返回
false。 - 不为空则判断栈顶是否为对应的左括号,是则出栈,不是则说明不符合匹配规则,返回
false。
最后判断栈是否为空,是则说明匹配完成,返回 true,否则说明还有未匹配的括号,返回 false。
🔧 代码实现
1、栈
1 | class Solution { |
📊 复杂度分析
1、栈
- 时间复杂度:,其中 n 是字符串 s 的长度。
- 空间复杂度:,栈中的字符数量为 。
🎯 总结
- 核心思想:注意括号要合法,不能交叉闭合。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 很多时候不懂事!