【百日算法计划】:每日一题,见证成长(019)

题目

有效的括号

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

有效字符串需满足:

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

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

示例:

输入:s = "{[]}"

输出:true

思路

  • 左括号直接入栈,右括号与栈顶元素比较是否配对;
java 复制代码
class Solution {
    public boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); ++i) {
            char c = s.charAt(i);
            if (c == '(' || c == '[' || c == '{'){ //左括号直接入栈
                stack.push(c);
            } else {                               //右括号需要与栈顶符号比较
                if (stack.empty()) return false;
                char top = stack.pop();
                if (c == ')' && top != '('){
                    return false;
                }
                if (c == ']' && top != '['){
                    return false;
                }
                if (c == '}' && top != '{'){
                    return false;
                }
            }

        }
        return stack.empty();
    }
}
相关推荐
白鲸开源4 分钟前
(三)ODS/明细层落地设计要点:把数据接入层打造成“稳定可运维”的基础设施
大数据·数据结构·数据库
隔壁小邓20 分钟前
Spring-全面讲解
java·后端·spring
苏纪云23 分钟前
蓝桥杯知识点——day2
数据结构·算法·蓝桥杯
Wect24 分钟前
LeetCode 52. N 皇后 II:回溯算法高效求解
前端·算法·typescript
JustMove0n31 分钟前
互联网大厂Java面试全流程问答及技术详解
java·jvm·redis·mybatis·dubbo·springboot·多线程
iFlyCai37 分钟前
数据结构与算法之希尔排序
数据结构·算法·排序算法
SimonKing40 分钟前
5分钟学会!把代码从本地推送到 GitHub,就是这么简单
java·后端·程序员
玹外之音40 分钟前
Spring AI 11 种文档切割策略全解析
java·spring·ai编程
lcreek1 小时前
LeetCode2208. 将数组和减半的最少操作次数、LeetCode2406.将区间分为最少组数
python·算法
shehuiyuelaiyuehao1 小时前
算法1,移动零
数据结构·算法·排序算法