题解 | #有效括号序列#

有效括号序列

https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    public boolean isValid (String s) {
        // write code here
        String begin = "({[";
        String end = ")}]";
        Stack<Character> t = new Stack<>();

        for (char c :s.toCharArray()){
            if (begin.indexOf(c) != -1){
                t.push(c);
                continue;
            }
            if (end.indexOf(c) != -1){
                if (t.empty()) {
                    return false;
                }
                Character pop = t.pop();
                switch (c){
                    case ')':
                        if (!pop.equals('(')){
                            return false;
                        }
                        break;

                    case ']':
                        if (!pop.equals('[')){
                            return false;
                        }
                        break;

                    case '}':
                        if (!pop.equals('{')){
                            return false;
                        }
                        break;
                    default:
                        break;
                }

            }
        }
        if (t.empty()){
            return true;
        }else {
            return false;
        }
    }
}

使用栈存储字符串中出现的括号开始字符,遇到结束字符依次出栈,判读出栈的字符是否匹配。

全部评论

相关推荐

7月12日投的,咋一点反馈都没有
投递禾赛科技等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 11:34
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务