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;
    }
}
相关推荐
哈里谢顿8 小时前
如何实现分布式锁
面试
wfbcg8 小时前
每日算法练习:LeetCode 209. 长度最小的子数组 ✅
算法·leetcode·职场和发展
yoyobravery9 小时前
蓝桥杯第15届单片机满分
单片机·职场和发展·蓝桥杯
白露与泡影10 小时前
Java面试题库及答案解析(2026版)
java·开发语言·面试
June bug10 小时前
全链路测试
功能测试·面试·职场和发展
倦王10 小时前
力扣日刷47
算法·leetcode·职场和发展
AI成长日志12 小时前
【笔面试算法学习专栏】哈希表基础:两数之和与字母异位词分组
学习·算法·面试
abant212 小时前
leetcode 239 单调队列 需要一些记忆
算法·leetcode·职场和发展
ShineWinsu12 小时前
对于Linux:文件操作以及文件IO的解析
linux·c++·面试·笔试·io·shell·文件操作
U盘失踪了13 小时前
面试题:你在测试工作中有使用过AI吗?具体是怎么用的?
面试