虾皮笔试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##笔经#