• 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);
    }


    }
  • 相关阅读:
    JS 数组总结
    JS 数据类型及其判断
    CSS 优先级
    正则表达式及其使用例子
    常见的图片格式
    React 箭头函数的使用
    手动搭建 react+webpack 开发环境
    JS 函数参数及其传递
    JS 中的 this 指向问题
    JS 中函数的 length 属性
  • 原文地址:https://www.cnblogs.com/ttaall/p/14113347.html
Copyright © 2020-2023  润新知