day20(12.10)——leetcode面试经典150

20. 有效的括号

20. 有效的括号

这题就是利用栈的特性,如果是左边的括号就加入栈中,否则进行匹配,匹配不上就return false

还有要特别注意栈中的元素的时候可能当前栈为空,直接进行判断,为空就直接return false

还有最后匹配完要检查一下栈中是否有元素,如果还有元素,就返回false

题目:

题解:

java 复制代码
class Solution {
    public boolean isValid(String s) {
        Map<Character,Character> map = new HashMap<>();
        map.put('(',')');
        map.put('[',']');
        map.put('{','}');
        //创建一个ArrayList数组
        ArrayList<Character> list = new ArrayList<>();
        for(int i=0;i<s.length();i++) {
            Character c = s.charAt(i);
            if(c=='('||c=='['||c=='{') {
                list.add(c);
            }
            else {
                if(list.size()<1) {
                    return false;
                }
                //取出list中的最后一个元素
                Character x = list.get(list.size()-1);
                if(map.get(x)==c) {
                    list.remove(list.size()-1);
                }
                else {
                    return false;
                }
            }
        }
        if(list.size()!=0) {
            return false;
        }
        return true;
    }
}
相关推荐
晨米酱3 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
CoderYanger3 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
爱学习的执念3 天前
助力金九银十1000道软件测试面试题(功能、接口、自动化、WEB、APP.......)附答案
软件测试·面试
小的~~3 天前
银河麒麟V10 ARM部署TDengine(涛思)工业时序数据库安装与测试
面试·程序员创富
2401_832298103 天前
人机协同:AI时代全新工作与学习范式
职场和发展
童园管理札记3 天前
从政策驱动到课堂落地:2026年“人工智能+教育”全景解读与技术实践指南
人工智能·python·深度学习·职场和发展·学习方法
小刘在重生~3 天前
Oracle_day2 单行函数|组函数|分组|伪列|子查询|分页|多表连接
笔记·oracle·面试
Sam_Deep_Thinking3 天前
关于java final关键字的可见性
java·后端·面试·程序员
yuanxi2003 天前
卡塔尔能源公司LNG扩建项目首条生产线预计明年投运:大客户销售的5个判断
职场和发展·创业创新·学习方法