有效括号

Posted raidencool

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有效括号相关的知识,希望对你有一定的参考价值。

无聊简单题,,,,
import java.util.HashMap;
import java.util.Stack;

/**
 * @说明:
 * @类型名称:ValidParenthesis
 * @创建者: Raiden
 * @创建时间: 2020/5/20 17:04
 * @修改者: Raiden
 * @修改时间: 2020/5/20 17:04
 */
/*
    给定一个只包括 ‘(‘,‘)‘,‘{‘,‘}‘,‘[‘,‘]‘ 的字符串,判断字符串是否有效。
    有效字符串需满足:
    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
    注意空字符串可被认为是有效字符串。
* */
public class ValidParenthesis {
    public static void main(String[] args) {
        System.out.println(verificationParenthesis("(("));
    }

       public static Boolean verificationParenthesis(String s){
           if (s==null){
               return false;
           }
           if ("".equals(s)){
               return true;
           }
           char[] chars = s.toCharArray();
           if (chars.length%2==1){
               return false;
           }
           HashMap<Character, Character> map = new HashMap<>();
           map.put(‘{‘,‘}‘);
           map.put(‘(‘,‘)‘);
           map.put(‘[‘,‘]‘);
           Stack stack = new Stack();
           for (int i=0;i<chars.length;i++) {
               if (map.containsKey(chars[i])){
                   stack.push(chars[i]);

               }else {
                   if (stack.empty())
                       return false;
                   char pop = (char)stack.pop();
                   if (chars[i]!=map.get(pop))
                       return false;

               }
           }
           return stack.empty();
       }
}

以上是关于有效括号的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个 javascript 代码有效并且在括号内使用逗号? [复制]

括号序列/有效的括号

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

20. 有效的括号

栈——有效括号问题

刷题4:有效的括号