热点新闻
20. 有效的括号
2023-07-24 05:59  浏览:4034  搜索引擎搜索“养老之家”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在养老之家看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

20. 有效的括号

题目链接:https://leetcode-cn.com/problems/valid-parentheses/

难度:简单

给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

示例 1:

输入: "()" 输出: true

示例 2:

输入: "()[]{}" 输出: true

示例 3:

输入: "(]" 输出: false

示例 4:

输入: "([)]" 输出: false

示例 5:

输入: "{[]}" 输出: true

解法一:

可以利用栈的概念,遍历字符串s,

每次获取一个字符,

  • 如果为上括号直接入栈;
  • 如果为下括号,判断栈顶元素是否为该字符对应的上括号,
    • 若是,则把栈顶元素出栈;
    • 若不是,直接返回flase。

class Solution { public boolean isValid(String s) { boolean flag = true; Stack<Character> stack = new Stack<>(); Map<Character, Character> map = new HashMap<Character, Character>(){ { put('}', '{'); put(')', '('); put(']', '['); } }; if(s.length()==0) { return true; } for(int i = 0;i<s.length();i++) { if(!stack.isEmpty() && map.get(s.charAt(i))==stack.lastElement()) { stack.pop(); }else { stack.push(s.charAt(i)); } } flag = stack.isEmpty(); return flag; } }

发布人:9c54****    IP:117.173.23.***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发