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

括号合法题

一、括号合法题

2116. 判断一个括号字符串是否有效

    //采用从左往右和从右往左遍历的贪心算法,分别保证前缀合法,后缀合法。
    public boolean canBeValid(String s, String locked) {
        int n=s.length();
        if (n%2==1) return false;
        int num=0;
        // 从左到右扫描,假设所有未锁定位置都能变为 '('
        for (int i = 0; i < n; i++) {
            if (locked.charAt(i)=='0'||s.charAt(i)=='('){
                num++;
            }else {
                num--;
            }
            if (num<0){
                return false;
            }
        }
        num=0;
        // 从右到左扫描,假设所有未锁定位置都能变为 ')'
        for (int i = n-1; i >=0 ; i--) {
            if (locked.charAt(i)=='0'||s.charAt(i)==')'){
                num++;
            }else {
                num--;
            }
            if (num<0){
                return false;
            }
        }
        return true;
    }

20. 有效的括号 - 力扣(LeetCode)

    public static boolean isValid(String s) {
        int n=s.length();
        if (n%2==1) return false;
        Map<String,String> map=new HashMap<>();
        map.put("(",")");
        map.put("{","}");
        map.put("[","]");
        LinkedList<String> list=new LinkedList<>();
        for (int i = 0; i < n; i++) {
            if ("(".equals(s.charAt(i)+"")||
                    "{".equals(s.charAt(i)+"")||
                    "[".equals(s.charAt(i)+"")){
                list.add(s.charAt(i)+"");
            }else{
                String poll = list.pollLast();
                if (poll==null||!map.get(poll).equals(s.charAt(i)+"")){
                    return false;
                }
            }
        }
        if (list.size()!=0){
            return false;
        }
        return true;
    }

Java如何判断质数

再小的努力,乘以365都很明显!
每天⽤⼼记录⼀点点。内容也许不重要,但习惯很重要!
一个程序员最重要的能力是:写出高质量的代码!!
有道无术,术尚可求也,有术无道,止于术。
无论你是年轻还是年长,所有程序员都需要记住:时刻努力学习新技术,否则就会被时代抛弃!


http://www.kler.cn/a/601159.html

相关文章:

  • 在CentOS系统上运行Ruby on Rails应用的详细步骤
  • 借助可视化,快速洞察数据背后的商机
  • 游戏如何检测GG修改器
  • 英伟达「虚拟轨道+AI调度」专利:开启自动驾驶3.0时代的隐形革命
  • 表单查询、多表查询
  • 3.24前端模拟面试
  • 如何下载 Postman?快速指南!
  • Java 基于微信小程序的开放实验室预约管理系统
  • 诡异的服务重启原因探索
  • (基本常识)C++中const与引用——面试常问
  • 电机倍频曲线的一些奇异特性-原因分析及应用
  • 气膜科技,突破极限:高海拔施工的全新解决方案—轻空间
  • 数据结构每日一题day2(顺序表)★★★★★
  • 一个简单的用C#实现的分布式雪花ID算法
  • Apache Tomcat RCE漏洞(CVE-2025-24813)
  • python 格式化利器
  • 亿级分布式系统架构演进实战(八)- 垂直拆分(领域划分及垂直分库设计)
  • springboot使用netty做TCP客户端
  • Java Collection API增强功能系列之六 改进的 ConcurrentHashMap:归约、搜索、计数与 Set 视图详解
  • [图形学]在半球面上按照微表面模型采样