算法题(力扣)-有效的括号
题目描述
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
题目解析
这道题让我们验证输入的字符串是否为括号字符串,包括大括号,中括号和小括号。
这里我们使用栈。
遍历输入字符串
如果当前字符为左半边括号时,则将其压入栈中
如果遇到右半边括号时,分类讨论:
1)如栈不为空且为对应的左半边括号,则取出栈顶元素,继续循环
2)若此时栈为空,则直接返回false
3)若不为对应的左半边括号,反之返回false
代码实现
相关推荐HOT
redis数据类型有几种
消息队列(stream):一个特殊的数据结构,用于支持流式处理消息,并可以支持消费者分组、消费者位移等特性。每种数据类型都有对应的命令可以进行...详情>>
2023-03-16 10:19:36hadoop集群的最主要瓶颈
Hadoop集群的主要瓶颈取决于许多因素,例如集群的大小、硬件规格、网络架构、数据复杂性和处理任务等。以下是可能影响Hadoop集群性能的一些常见...详情>>
2023-03-14 10:22:17java底层hashmap扩容怎么实现?
Hashtable的synchronized是针对整张Hash表的,即每次锁住整张表让线程独占,ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分...详情>>
2022-11-08 14:31:36用户画像系统中遇到的比较难的问题是什么?
如果我们直接将用户的标签转换为稀疏向量来存储,对于类别标签使用`one-hot`编码,但这样会出现维度爆炸的问题,向量过于稀疏,向量之间的余弦...详情>>
2022-11-07 15:25:17