知识点回顾
队列:
1.front()头
2.pop出头
3.push进
本题错误回顾:
YES和NO的大小写与题目要求不同,切记看清题目,字符串能复制尽量复制
#include <iostream>
#include<stdio.h>
#include<algorithm>
#include<vector>
#include<queue>
using namespace std;
int main()
{string s;
queue<int> num;
queue<char>op;
int n;
cin >> n;
while (n--)
{
cin >> s;
s.push_back('+');
for (int i = 1; i < s.size(); i += 2)
{
int t = s[i-1]-'0';
for (; s.size() && s[i] == 'x' || s[i] == '/';i+=2)
{
if (s[i] == 'x')
t = t * (s[i + 1] - '0');
else
t = t / (s[i + 1] - '0');
}
num.push(t);
op.push(s[i]);
}
num.push(0);
int t = num.front();
num.pop();
while (!op.empty())
{
char c = op.front();
op.pop();
t = (c == '+') ? t + num.front() : t - num.front();
num.pop();
}
if (t == 24)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}