题解 | 有效括号序列

有效括号序列

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
        // 1. 奇数长度直接返回 false
        if (s.length() % 2 != 0) return false;
        if (s.equals("")) return true;
        
        // 2. 使用 ArrayDeque 性能优于 Stack 或 ArrayList
        Deque<Character> stack = new ArrayDeque<>();

        for (char c : s.toCharArray()) {
            //3. 遇到左括号,把对应的右括号压入栈
            if (c == '(') {
                stack.push(')');
            } else if (c == '{') {
                stack.push('}');
            } else if (c == '[') {
                stack.push(']');
            } else {  // 4. 遇到右括号,判断栈是否为空或是否匹配
                if (stack.isEmpty() || stack.pop() != c) {
                    return false;
                }
            }
        }
        return stack.isEmpty();
    }
}

全部评论

相关推荐

05-18 12:59
已编辑
东南大学 人工智能
夜晚的精灵:熟悉transformer架构,熟悉机器学习,强化学习这些都可以写上去
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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