虾皮笔试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##笔经#
查看23道真题和解析
CVTE公司福利 732人发布
