当前位置: 首页 > 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` 组合
  • 全国人大常委会关于授权国务院在中国(新疆)自由贸易试验区暂时调整适用《中华人民共和国种子法》有关规定的决定
  • 强制性国家标准《危险化学品企业安全生产标准化通用规范》发布
  • 铁路迎来节前出行高峰,今日全国铁路预计发送旅客1870万人次
  • 中方拟解除对5名欧洲议会议员制裁?外交部:望中欧立法机构相向而行
  • 中国科学院院士张泽民已任重庆医科大学校长
  • 排除燃气爆炸、人为放火可能,辽宁辽阳火灾事故起火原因正在调查