题解 | #有效括号序列#

有效括号序列

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

方法一:
 private static boolean isValid(String str) {
        Stack<Character> stack = new Stack<>();
        boolean valid = false;
        char[] strs = str.toCharArray();
        if (strs[0] == ')' || strs[0] == ']' || strs[0] == '}') {
            return false;
        }
        for (int i = 0; i < strs.length; i++) {
            char temp = strs[i];
            if (temp == '(' || temp =='[' || temp=='{') {
                stack.push(temp);
            } else {
                char c = stack.pop();
                if ((c == '(' && temp == ')') || (c == '[' && temp == ']') || (c == '{' && temp == '}') ){
                    continue;
                } else {
                    return false;
                }
            }
            }
        if (stack.isEmpty()) {
            valid = true;
        }
        return valid;

        } 
简化版方法二:
        private static boolean isValid2(String str) {
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) == '(') {
                stack.push(')');
            } else if (str.charAt(i) == '[') {
                stack.push(']');
            } else if (str.charAt(i) == '{') {
                stack.push('}');
            } else if (stack.isEmpty() || stack.pop() != str.charAt(i)) {
                return false;
            }
        }
        return stack.isEmpty(); 



#牛客网在线编程#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务