hot100-55有效的括号

一、题目

给定一个只包括( ) { } [ ] 的字符串s,判断字符串是否有效。

有效字符串:

1)左括号必须用相同类型的右括号闭合。

2)左括号必须以正确的顺序闭合。

3)每个右括号都有一个对应的相同类型的左括号。

二、思路

利用「栈」(Stack)来模拟括号的匹配过程,遵循"后进先出"的原则。

1)遇到左括号,直接压入栈中,等待后续匹配。

2)遇到右括号,

检查栈是否为空,没有左括号匹配,则无效。

栈顶的左括号是否能和当前的右括号匹配,不能则无效。

遍历完所有字符后,检查栈是否为空,非空则无效,空则是有效的括号字符串。

三、代码

复制代码
class Solution {
    public boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();
        for(char c : s.toCharArray()){
            if(c == '(' || c == '[' || c == '{'){
                stack.push(c);
            }else{
                //遇到右括号
                if(stack.isEmpty()){
                    return false;//没有左括号匹配
                }
                char top = stack.pop();
                if((c == ')' && top != '(') ||
                (c == '}' && top != '{') ||
                (c == ']' && top != '[')){
                    return false;//类型不匹配
                }
            }
        }
        return stack.isEmpty();//所有左括号都被匹配
    }
}
相关推荐
念何架构之路1 小时前
Go语言加密算法
数据结构·算法·哈希算法
AI科技星1 小时前
《数学公理体系·第三部·数术几何》(2026 年版)
c语言·开发语言·线性代数·算法·矩阵·量子计算·agi
失去的青春---夕阳下的奔跑1 小时前
560. 和为 K 的子数组
数据结构·算法·leetcode
黎阳之光1 小时前
黎阳之光:以视频孪生重构智慧医院信息化,打造高标项目核心竞争力
大数据·人工智能·物联网·算法·数字孪生
丷丩2 小时前
三级缓存下MVT地图瓦片服务性能优化策略
算法·缓存·性能优化·gis·geoai-up
m0_629494732 小时前
LeetCode 热题 100-----25.回文链表
数据结构·算法·leetcode·链表
ʚ希希ɞ ྀ3 小时前
单词拆分----dp
算法
智者知已应修善业4 小时前
【51单片机LED闪烁10次数码管显示0-9】2023-12-14
c++·经验分享·笔记·算法·51单片机
智者知已应修善业4 小时前
【51单片机2按键控制1个敞亮LED灯闪烁和熄灭】2023-11-3
c++·经验分享·笔记·算法·51单片机
AI算法沐枫4 小时前
大模型 | 大模型之机器学习基本理论
人工智能·python·神经网络·学习·算法·机器学习·计算机视觉