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;
    }
}
相关推荐
黄敬峰7 小时前
Agent Memory 进阶:用 LLM 总结压缩上下文,告别"金鱼记忆"
面试
RisunJan10 小时前
后端高频面试题与解答
面试·职场和发展
我命由我1234512 小时前
Photoshop - Photoshop 把两个 PSD 文件合并
学习·ui·职场和发展·产品运营·产品经理·学习方法·photoshop
数智启示录13 小时前
PostgreSQL 计划缓存实战(第 10 篇):预编译 SQL 前五次都快,第六次为什么可能变慢
经验分享·sql·缓存·postgresql·面试
CoderYanger15 小时前
A.每日一题:1140. 石子游戏 II
java·程序人生·算法·leetcode·游戏·职场和发展·深度优先
windliang15 小时前
Agent Loop 的 while 循环什么时候开始不够用
人工智能·面试·开源
不要打扰75617 小时前
2027国网提前批宣讲、面试、预报名、内部笔试时间一览
面试·职场和发展
YHHLAI17 小时前
TypeScript 高级工具类型面试指南
ubuntu·面试·typescript
退休倒计时19 小时前
【每日五题】leetcode TypeScript
算法·leetcode·职场和发展·typescript
众人皆醒我独醉19 小时前
Kubernetes GPU 调度与管理的完整机制——从节点上架到 Pod 拿到 GPU
面试·kubernetes·gpu