美文网首页
有效的括号序列

有效的括号序列

作者: zhujiaqqq | 来源:发表于2017-09-25 20:49 被阅读0次

描述

给定一个字符串所表示的括号序列,包含以下字符: (, ), {, }, [], 判定是否是有效的括号序列。

样例

括号必须依照 () 顺序表示, ()[]{} 是有效的括号,但 ([)]则是无效的括号

实现

public class Solution {
    /*
     * @param s: A string
     * @return: whether the string is a valid parentheses
     */
    public boolean isValidParentheses(String s) {
        // write your code here
         if (s.length() % 2 == 1) {
            return false;
        }

        if (s.length() == 0) {
            return true;
        }

        byte[] bytes = s.getBytes();
        List<Byte> list = new ArrayList<>();
        for (int i = 0; i < s.length(); i++) {
            if (i == 0) {
                list.add(bytes[i]);
            } else {
                switch (bytes[i]){
                    case '{':
                        list.add(0,bytes[i]);
                        break;
                    case '[':
                        list.add(0,bytes[i]);
                        break;
                    case '(':
                        list.add(0,bytes[i]);
                        break;
                    case '}':
                        if (list.isEmpty()) {
                            return false;
                        }
                        if (list.get(0) == '{') {
                            list.remove(0);
                            break;
                        } else {
                            return false;
                        }
                    case ']':
                        if (list.isEmpty()) {
                            return false;
                        }
                        if (list.get(0) == '[') {
                            list.remove(0);
                            break;
                        } else {
                            return false;
                        }
                    case ')':
                        if (list.isEmpty()) {
                            return false;
                        }
                        if (list.get(0) == '(') {
                            list.remove(0);
                            break;
                        } else {
                            return false;
                        }
                }
            }
        }
        if (list.size() != 0) {
            return false;
        }
        return true;
    }
}

请关注我的个人网站:https://zhujiaqqq.github.io/

相关文章

  • 有效的括号序列

    描述 给定一个字符串所表示的括号序列,包含以下字符: (, ), {, }, [ 和 ], 判定是否是有效的括号序...

  • 423. 有效的括号序列

    423. 有效的括号序列 描述 笔记 数据 评测 给定一个字符串所表示的括号序列,包含以下字符: '(', ')'...

  • 423. 有效的括号序列

    给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', ...

  • [POJ2955]Brackets

    题面描述 我们给出了正则括号序列的如下归纳定义:· 空序列是正则括号序列· 如果s是正则方括号序列,那么(s)和[...

  • [26无验证]牛牛的括号匹配-京东2018秋

    1.题目描述 如果一个括号序列中的每个左括号都有一个右括号与之完成配对,这个序列就是一个合法的括号匹配序列。例如"...

  • 京东2018秋招笔试编程题集合

    1.括号匹配方案 合法的括号匹配序列被定义为: 空串""是合法的括号序列 如果"X"和"Y"是合法的序列,那么"X...

  • 括号序列

    题目描述给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括...

  • 数据结构-栈\队列:1036: 括号匹配(括号位序)

    题目:1036: 括号匹配描述:PIPI给你一个合法的括号序列,希望跟你按左括号下标递增顺序给出每对括号在序列中的...

  • Codeforces 1214C - #583(分析思路,贪心)

    题目描述 给定一个括号序列(可能非法),求能否通过移动最多一个字符,使得括号序列合法。 如果s为合法的括号序列,那...

  • 完成括号匹配-(百度2018)

    题目:给出一个括号序列S,在S的开始和结尾处添加一定数量的左括号'['或右括号']',使其成为完整的括号匹配序列;...

网友评论

      本文标题:有效的括号序列

      本文链接:https://www.haomeiwen.com/subject/bqadextx.html