LeetCode150道面试经典题-- 有效的括号(简单)

1.题目

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

2.示例

示例 1:

输入:s = "()"

输出:true

示例 2:

输入:s = "()\[\]{}"

输出:true

示例 3:

输入:s = "(]"

输出:false

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成

3.思路

首先需要找规律,第一如果该字符串个数为奇数那么绝对是无效的。并且需要用栈进行判断当遇到右括号时候,则与栈顶中元素进行对比,如果是匹配的左括号则出栈。如果出现不匹配则

4.代码

java 复制代码
class Solution {
    public boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();
        //        如果个数是奇数则绝对有问题
        if (s.length()%2==1){
            return false;
        }
        Map<Character,Character> map = new HashMap<>();
        map.put('}','{');
        map.put(')','(');
        map.put(']','[');

//       右括号无法存放进入stack中
        for (int i=0;i<s.length();i++){
           if (s.charAt(i)=='('||s.charAt(i)=='['||s.charAt(i)=='{'){
               stack.push(s.charAt(i));
           }else {
//               解决第一个右括号问题
               if(stack.isEmpty()){
                   return false;
               }
               if (stack.peek() == map.get(s.charAt(i))){
                   stack.pop();
               }else {
                   return false;
               }
           }
        }
        if (!stack.isEmpty()){
           return false;
        }
        return true;
    }
}

时间复杂度O(n),空间复杂度O(1)


会了?试试挑战下一题!♪(^∀^●)ノシ (●´∀`)♪

LeetCode150道面试经典题-- 环形链表(简单)_Alphamilk的博客-CSDN博客

相关推荐
_日拱一卒6 分钟前
LeetCode:207课程表
java·数据结构·算法·leetcode·职场和发展
飞翔中文网13 分钟前
Java学习笔记之抽象类与接口(设计思想)
java·笔记·学习
qcx2332 分钟前
【系统学AI】09 Multi-Agent架构(2026版):从学术理论到工业级实践
java·人工智能·架构·multi-agent·claude agent
半旧夜夏1 小时前
【保姆级】微服务组件环境搭建(Docker Compose版)
java·linux·spring cloud·微服务·云原生·容器
jiayong231 小时前
AI架构师面试题库 - 完整汇总文档
人工智能·面试·职场和发展
云烟成雨TD2 小时前
Spring AI 1.x 系列【33】RAG Advisor 组件与四大分层架构
java·人工智能·spring
用户987409238872 小时前
llamafactory 0.6.3 没有 llamafactory-cli
算法
计算机安禾2 小时前
【算法分析与设计】第26篇:参数化算法与固定参数可解性理论
大数据·人工智能·算法·机器学习·剪枝
江南十四行3 小时前
并发编程(七)
java
AI科技星3 小时前
基于**v=c(空间光速螺旋运动)唯一第一性原理**重新完整求导证明
人工智能·线性代数·算法·机器学习·架构·概率论·学习方法