【正经题解】超级弹的QQ糖
2024-02-22 11:47:18
发布于:浙江
38阅读
0回复
0点赞
思路:
使用栈来模拟 排列的过程,栈顶元素表示当前要出栈的口味。
遍历 排列的结果,对于每个元素,判断是否与栈顶元素相同,若相同则出栈,否则继续入栈。
若遍历结束后栈为空,则输出" ",否则输出" "。
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> tasteStack; // 使用具有描述性的变量名
int flavors[1005]; // 使用具有描述性的变量名
int n, m;
// 输入口味种类数
cin >> n;
// 输入口味种类
for (int i = 0; i < n; i++)
cin >> flavors[i];
int j = 0;
// 输入GoldKing排列结果
for (int i = 0; i < n; i++) {
cin >> m;
while (tasteStack.empty() || (tasteStack.top() != m && j < n)) {
tasteStack.push(flavors[j]);
j++;
}
if (tasteStack.top() == m) {
tasteStack.pop();
} else {
cout << "No";
return 0;
}
}
cout << "Yes";
return 0;
}
这里空空如也
有帮助,赞一个