有效的括号序列

描述

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

样例

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

实现

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/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 难度:容易 要求: 给定一个字符串所表示的括号序列,包含以下...
    柒黍阅读 468评论 0 0
  • 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', ...
    DayDayUpppppp阅读 325评论 0 1
  • 问题:给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']...
    何大炮阅读 409评论 1 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,009评论 19 139
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,272评论 0 4