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;
    }
}
相关推荐
是一个Bug4 小时前
声明式事务
java·开发语言·面试
LYFlied4 小时前
Webpack详细打包流程解析
前端·面试·webpack·node.js·打包·工程化
青山的青衫5 小时前
【优先级队列(堆)+排序】LeetCode hot100+面试高频
算法·leetcode·面试
a程序小傲5 小时前
百度Java面试被问:HTTPS解决了HTTP什么问题?
java·后端·http·百度·面试
无责任此方_修行中14 小时前
亲历外企裁员:上午还在写代码,下午工位就空了
面试·程序员·求职
Moment14 小时前
从美团全栈化看 AI 冲击:前端转全栈,是自救还是必然 🤔🤔🤔
前端·后端·面试
老王熬夜敲代码15 小时前
C++中的atomic
开发语言·c++·笔记·面试
a努力。15 小时前
腾讯Java面试被问:String、StringBuffer、StringBuilder区别
java·开发语言·后端·面试·职场和发展·架构
优弧16 小时前
离开舒适区100天,我后悔了吗?
前端·后端·面试