zoukankan      html  css  js  c++  java
  • Leecode no.20 合理的括号

    package com.example.demo.leecode;

    import java.util.Stack;

    /**
    * 合理的括号
    * @Date 2020/12/10
    * @author Tang
    *
    * 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
    * 有效字符串需满足:
    * 左括号必须用相同类型的右括号闭合。
    * 左括号必须以正确的顺序闭合。
    * 注意空字符串可被认为是有效字符串。
    */
    public class ValidParentheses {

    private Stack<Character> stack = new Stack();

    public boolean execute(String s){

    if(s == null || "".equals(s.trim())){
    return false;
    }

    char[] chars = s.toCharArray();

    for(char c : chars){
    if(ifMatching(c)){
    stack.pop();
    continue;
    }
    stack.push(c);
    }

    return stack.size() == 0;
    }

    /**
    * 是否匹配上栈中上一个字符
    * @param c
    * @return
    */
    private boolean ifMatching(char c){
    if(stack.size() == 0){
    return false;
    }

    switch (stack.peek()){
    case '{':
    return c == '}';
    case '(':
    return c == ')';
    case '[':
    return c == ']';
    default:
    return false;
    }


    }


    public static void main(String[] args) {

    String value = "{(]}";
    boolean result = new ValidParentheses().execute(value);
    System.out.println(result);
    }


    }
  • 相关阅读:
    浏览器和node中的event loop的区别
    path.resolve(dir)与path.join(__dirname,dir)的区别
    如何在typescript项目中使用eslint
    eslint无法检测ts类型错误
    todo
    brew update 卡住
    async await原理
    node的require
    Hive表头导出成csv文件
    算法--决策树
  • 原文地址:https://www.cnblogs.com/ttaall/p/14113347.html
Copyright © 2011-2022 走看看