zoukankan      html  css  js  c++  java
  • Valid Parentheses有效括号匹配。利用栈。

    问题描述:给定一个字符串,其中只包含字符‘{’,    '}',    '[',    ']',   '(',    ')'确定如果输入字符串是有效的。
    括号必须以正确的顺序排列,“()”和“()[]{ }”都是有效的,   "{",  " {]"等都是无效的。

    解题思路:利用栈,如果不是右括号就压入栈中,如果是右括号,就看前一个字符是不是匹配的左括号,如果匹配出栈,接着看后面字符,不匹配则返回false。

     1 public boolean isValid(String s) {
     2             Map<Character,Character> map = new HashMap<>();
     3             map.put('(',')');
     4             map.put('[',']');
     5             map.put('{','}');
     6             Stack<Character> stack = new Stack<>();
     7             for(int i = 0; i < s.length(); i ++)
     8             {
     9                 char curr = s.charAt(i);
    10                 if(map.keySet().contains(curr))
    11                 {
    12                     stack.push(curr);
    13                 }
    14                 //注意判断空的情况
    15                 else if(!stack.empty() && map.values().contains(curr))
    16                 {
    17                     char pre = stack.peek();
    18                     if(map.get(pre)==curr)
    19                     {
    20                         stack.pop();
    21                     }
    22                     else
    23                     {
    24                         return false;
    25                     }
    26                 }
    27                 else
    28                 {
    29                     return false;
    30                 }
    31             }
    32             return stack.empty();
    33         }
  • 相关阅读:
    微信端video去除最顶层播放
    MVC错误页面相关说明
    sublime使用
    linux或Mac下手动回滚代码
    用Python操作git命令
    利用pyinstaller打包加密Python项目
    进程、线程和协程的结合使用
    模块导入失败问题
    递归调用解压zip包或rar包
    随机验证码&发红包
  • 原文地址:https://www.cnblogs.com/masterlibin/p/5542762.html
Copyright © 2011-2022 走看看