当前位置: 首页 > news >正文

【leetcode hot 100 20】有效的括号

解法一:使用栈

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()

相关文章:

  • uniapp动态循环表单校验失败:初始值校验
  • 【学习资源】多元时序分析问题和时序图模型
  • 【机器学习】建模流程
  • uniapp笔记-swiper组件实现轮播图
  • Unicode代码点与编码
  • 好消息!软航文档控件(NTKO WebOffice)在Chrome 133版本上提示扩展已停用的解决方案
  • 【虚拟环境配置】地信从0开始的环境配置小白教程
  • python康复日记-request库的使用,爬虫自动化测试
  • 【2025】基于springboot+vue的校园创新创业竞赛平台设计与实现(源码、万字文档、图文修改、调试答疑)
  • 使用Mastra.ai构建AI智能体:一次动手实践
  • 年龄预测识别模型训练python代码
  • PostgreSQL 事务处理
  • AI大模型全攻略:原理 · 部署 · Prompt · 场景应用
  • AI本地部署之dify
  • 【LNMP】网站架构分布式部署
  • 智能体(Agent)入门,智能体构建方法、工具链与应用策略;大语言模型的本地化部署、优化
  • 【AI学习从零至壹】PyTorch模型训练相关要素
  • 亚马逊云科技全面托管DeepSeek-R1模型现已上线
  • 第二节第一部分:String字符串
  • 建库字符集选择`utf8mb4` + `utf8mb4_unicode_ci` 组合
  • 科克托是说真话的骗子,而毕加索是一言不发、让大家去猜的人
  • 安徽一交通事故责任认定引质疑:民警和司法鉴定人被处罚,已中止诉讼
  • 中国经济“第一省会”广州,从传统商贸中心到直播电商第一城
  • 宜昌为何能有一批世界级农业:繁育虫草养殖鲟鱼,柑橘魔芋深耕大健康
  • 更好发挥汽车产业在扩投资促消费方面的带动作用!陈吉宁调研上海车展
  • 刘国梁总结发言数度哽咽:乒乓球是事业,更是融入血脉的信仰