【leetcode hot 100 20】有效的括号

解法一:使用栈

java 复制代码
class Solution {
    public boolean isValid(String s) {
        int n = s.length();
        if(n%2!=0){
            return false;
        }

        // 定义map,便于查找对应的括号
        Map<Character, Character> map = new HashMap<>();
        map.put(')','(');
        map.put(']','[');
        map.put('}','{');

        // 利用栈帮助判断
        Deque<Character> stack = new LinkedList<>();
        for(int i=0; i<n; i++){
            char ch = s.charAt(i);
            if(map.containsKey(ch)){
                // 是左括号
                if(stack.isEmpty() || stack.peek() != map.get(ch)){
                    return false;
                }
                stack.pop();
            }else{
                stack.push(ch);
            }
        }
        return stack.isEmpty();
    }
}

注意:

  • map不能LinkedMap,只能HashMap
    • List的实现:ArrayListLinkedListVector
    • Set的实现:HashSetLinkedHashSetTreeSet
    • Map的实现:HashMapLinkedHashMapTreeMap
    • Queue的实现:LinkedListArrayDequePriorityQueue
    • Stack的实现:LinkedListArrayDeque
  • 申请栈:
    - Deque<Character> stack = new LinkedList<>();
    • Deque<Character> stack = new ArrayDeque<>();
  • 申请队列:
    • Queue<Character> queue = new LinkedList<>();
    • Quque<Character> stack = new ArrayDeque<>();
  • LinkedListArrayDeque的区别:
    • 操作:
      ArrayDequeadd() remove()
      LinkedListoffer() poll() peek()
相关推荐
To_OC6 小时前
LC 131 分割回文串:刚学回溯时,我连怎么切字符串都想不明白
javascript·算法·leetcode
咩咩啃树皮7 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
旖-旎7 小时前
LeetCode 518:零钱兑换||(完全背包)—— 题解
c++·算法·leetcode·动态规划·背包问题
鱟鲥鳚7 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
To_OC7 小时前
LC 42 接雨水:暴力超时卡半天?前后缀数组一用就通了
javascript·算法·leetcode
大模型码小白8 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司9 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
爱笑的源码基地10 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
wuqingshun31415910 小时前
TCP超时重传机制是为了解决什么问题?
java
HLC++10 小时前
Linux的进程间通信
android·linux·服务器