栈混洗求助
  • 板块学术版
  • 楼主焚魂
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/8/26 18:31
  • 上次更新2024/8/26 20:53:13
查看原帖
栈混洗求助
206423
焚魂楼主2024/8/26 18:31

这是今天看到栈混洗时根据思路自己写的代码,问题是当输出No的时候没有问题,但是应该输出Yes时却运行错误,是什么原因

#include<iostream>
#include<cstdio>
#include<stack>

using namespace std;

stack<int> a;
stack<int> b;

int main() {
	int n,k[101];
	cin >> n;
	for(int i = 1;i <= n;i++) {
		cin >> k[i];
	}
	for(int i = n;i >= 1;i--) {
		a.push(k[i]);
	}
	for(int i = 1;i <= n;i++) {
		cin >> k[i];
	}
	for(int i = n;i >= 1;i--) {
		if(k[i] == a.top())
			a.pop();
		else
			b.push(k[i]);
	}
	while(b.top() == a.top()) {
		b.pop();
		a.pop();
	}
	if(!b.empty())
		cout << "No";
	else
		cout << "Yes";
	
	return 0;
}
2024/8/26 18:31
加载中...