题解 | #牛群的秘密通信#

牛群的秘密通信

https://www.nowcoder.com/practice/f0047999594d4cd39f85d7347c6941af

一、知识点:

二、文字分析:

  1. 创建一个空栈。
  2. 遍历输入字符串的每个字符:如果字符是左括号(‘(’, ‘{’, ‘[’)中的一个,将其压入栈中。如果字符是右括号(‘)’, ‘}’, ‘]’)中的一个,判断栈是否为空。如果栈为空,即没有左括号与之匹配,返回false。否则,弹出栈顶

的元素,并将其与当前遍历的右括号进行匹配。如果匹配成功,则继续遍历下一个字符;如果匹配失败,则返回false。

3. 循环结束后,判断栈是否为空。如果栈为空,说明所有的括号都已经匹配完,返回true;如果栈不为空,说明还有剩余的左括号没有匹配到相应的右括号,返回false。

三、编程语言:

java

四、正确代码:

import java.util.*;


public class Solution {
    public boolean is_valid_cow_communication(String s) {
        Stack<Character> stack = new Stack<>();

        for (char ch : s.toCharArray()) {
            if (ch == '(' || ch == '{' || ch == '[') {
                stack.push(ch);
            } else if (ch == ')' || ch == '}' || ch == ']') {
                if (stack.isEmpty()) {
                    return false;
                }
                char top = stack.pop();
                if ((ch == ')' && top != '(') || (ch == '}' && top != '{') || (ch == ']' &&
                        top != '[')) {
                    return false;
                }
            }
        }

        return stack.isEmpty();
    }
}

全部评论

相关推荐

05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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