队列和栈都能写吧,这里给出的是栈的代码,注意乘除的时候删掉的首元素
AC的代码
#include <bits/stdc++.h>
using namespace std;
int n;
int main(){
cin>>n;
while(n--)
{
int sum=0;
stack<int> a;
string s;
cin>>s;
for(int i=0;s[i];i++)
{
if('1'<=s[i] && s[i]<='9')
a.push(s[i]-'0');
else if(s[i]=='+')
//加的情况
a.push(s[++i]-'0');
else if(s[i]=='-')
//减的情况
a.push('0'-s[++i]);
else if(s[i]=='x')
//乘的情况
{
int temp=a.top();
a.pop();
a.push((s[++i]-'0')*temp);
}
else if(s[i]=='/')
//除的情况
{
int temp=a.top();
a.pop();
a.push(temp/(s[++i]-'0'));
}
}
while(!a.empty())
{
sum+=a.top();
a.pop();
}
if(sum==24)
puts("Yes");
else
puts("No");
}
return 0;
}