虾皮笔试9.6 与或逻辑那道题,过75%

public static long GetNumOfExpress(String express, boolean desired) {
        // write code here
        long re = 0;
        if(express.length()==1){
            if(desired&&express.charAt(0)=='1'){
                return 1;
            }
            else if(desired&&express.charAt(0)=='0'){
                return 0;
            }
            else if((!desired)&&express.charAt(0)=='0'){
                return 1;
            }
            else{
                return 0;
            }
        }
        for(int i=0;i<express.length();i++){
            if(i%2!=0){
                char c = express.charAt(i);
                if(c=='&'){
                    if(desired){
                        re += GetNumOfExpress(express.substring(0,i),true)*GetNumOfExpress(express.substring(i+1),true);
                    }else{
                        re += GetNumOfExpress(express.substring(0,i),true)*GetNumOfExpress(express.substring(i+1),false);
                        re += GetNumOfExpress(express.substring(0,i),false)*GetNumOfExpress(express.substring(i+1),true);
                        re += GetNumOfExpress(express.substring(0,i),false)*GetNumOfExpress(express.substring(i+1),false);
                    }
                }else if(c == '|'){
                    if(desired){
                        re += GetNumOfExpress(express.substring(0,i),true)*GetNumOfExpress(express.substring(i+1),true);
                        re += GetNumOfExpress(express.substring(0,i),true)*GetNumOfExpress(express.substring(i+1),false);
                        re += GetNumOfExpress(express.substring(0,i),false)*GetNumOfExpress(express.substring(i+1),true);
                    }else{
                        re += GetNumOfExpress(express.substring(0,i),false)*GetNumOfExpress(express.substring(i+1),false);
                    }
                }else{
                    if(desired){
                        re += GetNumOfExpress(express.substring(0,i),true)*GetNumOfExpress(express.substring(i+1),false);
                        re += GetNumOfExpress(express.substring(0,i),false)*GetNumOfExpress(express.substring(i+1),true);
                    }else{
                        re += GetNumOfExpress(express.substring(0,i),true)*GetNumOfExpress(express.substring(i+1),true);
                        re += GetNumOfExpress(express.substring(0,i),false)*GetNumOfExpress(express.substring(i+1),false);
                    }
                }
            }
            
        }
        return re;
    }

#Shopee##笔经#
全部评论
全排列有全过的嘛
点赞 回复 分享
发布于 2021-09-06 21:19

相关推荐

05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
牛客583549203号:腾讯还好,况且实习而已,实习生流动性很大,属于正常现象,记得和HR委婉解释
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

更多
牛客网
牛客企业服务