当前位置:   article > 正文

leetcode:有效的括号(java,考察点:入栈、出栈)_leetcode有效括号java

leetcode有效括号java

题目

  1. 给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。
  2. 有效字符串需满足:
  3. 左括号必须用相同类型的右括号闭合。
  4. 左括号必须以正确的顺序闭合。
  5. 注意空字符串可被认为是有效字符串。
  6. 示例 1:
  7. 输入: "()"
  8. 输出: true
  9. 示例 2:
  10. 输入: "()[]{}"
  11. 输出: true
  12. 示例 3:
  13. 输入: "(]"
  14. 输出: false
  15. 示例 4:
  16. 输入: "([)]"
  17. 输出: false
  18. 示例 5:
  19. 输入: "{[]}"
  20. 输出: true

思路

  1. “()”返回true,“(a)”返回false。元素中只包含括号的,并且按顺序对应的是true,其他为false
  2. 使用栈来判断,遇到左括号进栈,遇到右括号出栈匹配,匹配不上就返回false

java

  1. class Solution {
  2. public boolean isValid(String s) {
  3. Map<Character,Character> map = new HashMap<Character,Character>(){
  4. {
  5. put(')','(');
  6. put('}','{');
  7. put(']','[');
  8. }
  9. };
  10. Stack<Character> stack = new Stack<>();
  11. int n = s.length();
  12. char c;
  13. for(int i = 0; i < n; i++){
  14. c = s.charAt(i);
  15. if(map.get(c) != null){
  16. if(stack.isEmpty() || map.get(c) != stack.pop()){
  17. return false;
  18. }
  19. }else{
  20. stack.push(c);
  21. }
  22. }
  23. return stack.isEmpty();
  24. }
  25. }

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号