100分代码,未使用堆栈
import java.util.Scanner;
public class T2{
public static void main(String[] args) {
int n=0,i=0;
Scanner sc = new Scanner(System.in);
n=sc.nextInt();
String[] tf = new String[n];
for(i=0;i<n;i++) {
String s=sc.next();
tf[i]=TwentyFour(s);
}
for(i=0;i<n;i++) {
System.out.println(tf[i]);
}
sc.close();
}
private static String TwentyFour(String s) {
char []a = {'0','1','2','3','4','5','6','7','8','9'};
int[] b = new int[4];
char[] c = new char[3];
int k=0,i=0,j=0;
int sum=0,t=0;
c[0] = s.charAt(1);
c[1] = s.charAt(3);
c[2] = s.charAt(5);
for(i=0;i<7;i=i+2) {
for(j=1;j<10;j++) {
if(s.charAt(i)==a[j]) {
b[k]=j;
k=k+1;
}
}
}
if(c[0]=='+'||c[0]=='-') {
if(c[1]=='+'||c[1]=='-') {
sum = cal(c[0],b[0],b[1]);
if(c[2]=='+'||c[2]=='-') {
sum = cal(c[1],sum,b[2]);
sum = cal(c[2],sum,b[3]);
}
else {
t = cal(c[2],b[2],b[3]);
sum = cal(c[1],sum,t);
}
}
else {
sum = cal(c[1],b[1],b[2]);
if(c[2]=='+'||c[2]=='-') {
sum = cal(c[0],b[0],sum);
sum = cal(c[2],sum,b[3]);
}
else {
sum = cal(c[2],sum,b[3]);
sum = cal(c[0],b[0],sum);
}
}
}
else {
sum=cal(c[0],b[0],b[1]);
if(c[1]=='+'||c[1]=='-') {
if(c[2]=='+'||c[2]=='-') {
sum = cal(c[1],sum,b[2]);
sum = cal(c[2],sum,b[3]);
}
else {
t = cal(c[2],b[2],b[3]);
sum = cal(c[1],sum,t);
}
}
else {
sum = cal(c[1],sum,b[2]);
sum = cal(c[2],sum,b[3]);
}
}
if(sum==24) {
return "Yes";
}else {
// System.out.println(sum);
return "No";
}
}
private static int cal(char a,int b,int c) {
int t=0;
switch(a) {
case '+': t=b+c;break;
case '-': t=b-c;break;
case 'x': t=b*c;break;
case '/': t=b/c;break;
}
return t;
}
}