#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <string>
#include <bits/stdc++.h>
using namespace std;
bool Less_equal(char a,char b){//b<<a
if(a=='+'){
if(b=='+'||b=='-') {
return true;
}
else return false;
}else if(a=='-'){
if(b=='-'||b=='+') return true;
else return false;
}else if(a=='x'){
return true;
}else if(a=='/'){
return true;
}
}
int result(int num1,char ope,int num2){
if(ope=='+'){
return num1+num2;
}else if(ope=='-'){
return num2-num1;
}else if(ope=='x'){
return num1*num2;
}else if(ope=='/'){
return num2/num1;
}
}
int main(){
//cout<<result(3,'/',2)<<endl;
int num;
cin>>num;
while(num--){
string str;
cin>>str;
stack<int> arr;
stack<char> ch;
for(int i=0;i<str.size();i++){
if(isdigit(str[i])) {
arr.push(str[i]-'0');
}else {
if(ch.empty()){
ch.push(str[i]);
}else{
if(Less_equal(ch.top(),str[i])){
int num1=arr.top();
arr.pop();
int num2=arr.top();
arr.pop();
int res=result(num1,ch.top(),num2);
arr.push(res);
ch.pop();
ch.push(str[i]);
}else{
ch.push(str[i]);
}
}
}
}
if(!ch.empty()){
while(!ch.empty()&&!arr.empty()){
int num1=arr.top();
arr.pop();
int num2=arr.top();
arr.pop();
int res=result(num1,ch.top(),num2);
ch.pop();
arr.push(res);
}
}
int res=arr.top();
//cout<<res<<endl;
if(res==24){
cout<<"Yes"<<endl;
}else cout<<"No"<<endl;
}
return 0;
}
这个题目最坑的就是乘法使用'x'表示,不是'*'!!!