zoukankan      html  css  js  c++  java
  • 括号序列

    题目描述

    给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列
    括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。

    牛客网:NC52括号序列

    #示例1

    输入

    "["
    

    输出

    false
    
    示例2

    输入

    "[]"
    

    输出

    true
    

    想法

    本题我们可以使用栈来实现,括号的出现形式是成对嵌套形式的。遍历输入的字符串,如果遇到左括号,将对应的右括号直接入栈。遇到右括号时,就判断栈是否为空且出栈元素是否相同,如不符合要求,判断为false。完成遍历后,如果栈为空,判断为true,相反为false。

    Java 栈的使用方法 https://www.imooc.com/article/17679

    代码实现方法

    public boolean isValid (String s) {
        if (s == null) return false;
        Stack<Character> characters = new Stack<Character>();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            switch (c){
                case '(':
                    characters.push(')');
                    break;
                case '[':
                    characters.push(']');
                    break;
                case '{':
                    characters.push('}');
                    break;
                default:
                    if (characters.empty()||characters.pop()!=c){
                            return false;
                    }
            }
        }
        return characters.empty();
    }
    
  • 相关阅读:
    爬虫学习
    微软命令行安装第三方库
    Python复习(拾遗)3
    Python拾遗2
    Python复习(拾遗)
    python练习 自动绘图
    多分支结构
    turtle
    Python练习
    随便写点…
  • 原文地址:https://www.cnblogs.com/ilyar1015/p/14728541.html
Copyright © 2011-2022 走看看