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


    }
  • 相关阅读:
    正能量
    战略定位
    市场营销
    品牌营销
    CSS3圆角,阴影,透明
    iOS开发的22个奇谲巧技
    [设计模式] javascript 之 策略模式
    让网站和APP更具动感的几点建议
    JAVASCRIPT 之escape 介绍
    CSS2.0中最常用的18条技巧
  • 原文地址:https://www.cnblogs.com/ttaall/p/14113347.html
Copyright © 2011-2022 走看看