zoukankan      html  css  js  c++  java
  • 算法题:有效的括号

    一、题目

    给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
    有效字符串需满足:
    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。

    举例:

    ([{}])合法,([)]不合法

    二、代码

    package structure.stack;
    
    import java.util.Stack;
    
    public class BracketMatch {
    
        public boolean isValid(String s) {
            Stack<Character> stack = new Stack<>();
            for(int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
                /**
                 * 1、括号分为左括号、右括号。左括号有(、[、{,右括号有)、]、}
                 * 2、循环字符串中所有字符,若为左括号,则入栈,右括号,则跟栈顶元素进行比较是否匹配
                 */
                if(c == '(' || c == '[' || c == '{') {
                    stack.push(c);
                }else {
                    if(stack.isEmpty()) {
                        return false;
                    }
                    if(c == ')' && stack.pop() != '(') {
                        return false;
                    }
                    if(c == ']' && stack.pop() != '[') {
                        return false;
                    }
                    if(c == '}' && stack.pop() != '{') {
                        return false;
                    }
                }
            }
            // 若字符串的括号两两匹配,最终栈中元素应该为空。
            return stack.isEmpty();
        }
        
        public static void main(String[] args) {
            BracketMatch bracketMatch = new BracketMatch();
            System.out.println(bracketMatch.isValid("([{}])"));
            System.out.println(bracketMatch.isValid("([)]"));
        }
    }
    如果想给予我更多的鼓励,求打

    因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【阿里马云】!

  • 相关阅读:
    getComputedStyle方法获取元素CSS值
    js获得当前元素的样式
    移动端 Retina屏border实现0.5px
    CFA
    LCD驱动
    EPD的驱动
    camera原理
    Perl实战(一)
    Perl的debug小技巧
    Bus memory attribute
  • 原文地址:https://www.cnblogs.com/alimayun/p/14700105.html
Copyright © 2011-2022 走看看