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;
    }
}
相关推荐
掘金安东尼9 小时前
让 JavaScript 更容易「善后」的新能力
前端·javascript·面试
掘金安东尼9 小时前
用 HTMX 为 React Data Grid 加速实时更新
前端·javascript·面试
UrbanJazzerati12 小时前
非常友好的Vue 3 生命周期详解
前端·面试
想用offer打牌19 小时前
高并发下如何保证接口的幂等性
后端·面试·状态机
牛奶1 天前
Vue 基础理论 & API 使用
前端·vue.js·面试
牛奶1 天前
Vue 底层原理 & 新特性
前端·vue.js·面试
NAGNIP1 天前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
青青家的小灰灰2 天前
深入理解事件循环:异步编程的基石
前端·javascript·面试
程序员清风2 天前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
UrbanJazzerati2 天前
Vue3 父子组件通信完全指南
前端·面试