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

牛群的秘密通信

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

考察栈数据结构的应用

对于这道题,如果碰到左括号就全部入栈,如果碰到右括号的话就从栈中取出栈顶元素与其配对,如果无法配对就返回false,不过需要注意,取栈中元素的时候需要判断是否是空栈。

具体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; //此时没有对应的左括号 返回fasle
                Character popC = stack.pop();
                if ((c == ')' && popC != '(' || (c == ']' && popC != '[') || (c == '}' &&
                        popC != '{'))) { //如果对应不上就返回false
                    return false;
                }
            }
        }
        return true;
    }
}

全部评论

相关推荐

水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
不亏是提前批,神仙打架,鼠鼠不配了
站队站对牛:现在92都报工艺岗了
投递韶音科技等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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