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

牛群的秘密通信

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

题目考察的知识点是:

本题考察的知识点是栈。

题目解答方法的文字分析:

对输入的字符串进行遍历,遍历过程中若当前是左括号则入栈;当前是右括号,则将其与栈顶的左括号进行匹配:若匹配成功,则将匹配过的左括号(当前栈顶元素)出栈;若匹配不成功,则直接返回false。在遍历过程中遇到当前为右括号而此时栈为空的情况,则表示此右括号无法匹配,直接返回false。最终遍历完整个字符串后:若此时栈不为空,表示仍有左括号未被匹配,则返回false;否则即为全部括号都匹配成功,返回true

本题解析所用的编程语言:

java语言。

完整且正确的编程代码:

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @return bool布尔型
     */
    public boolean is_valid_cow_communication (String s) {
        // write code here
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == '(' || c == '[' || c == '{') {
                stack.push(c);
            } else {
                if (stack.isEmpty()) return false;
                Character popC = stack.pop();
                if ((c == ')' && popC != '(' || (c == ']' && popC != '[') || (c == '}' &&
                        popC != '{'))) {
                    return false;
                }
            }
        }
        return true;
    }
}

#题解#
全部评论

相关推荐

06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 18:13
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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