码风一般,已经尽量写了注释,希望大家尽量帮我看一下
#include<stdio.h>
#include<queue>
#include<stack>
using namespace std;
stack< int > enter;//入栈序列
queue< int > left;//出栈序列
int main(void) {
int n = 0;
int a[100005] = {}, b[100005] = {};
scanf("%d", &n);//读入询问次数
for (int i = 1; i <= n; i++) {
int len = 0;
scanf("%d", &len);//读入长度
for (int j = 1; j <= len; j++) {
scanf("%d", &a[j]);//读入每个入栈元素
}
for (int j = 1; j <= len; j++) {
scanf("%d", &b[j]);//读入出栈元素
left.push(b[j]);//加入队列
}
for (int j = 1; j <= len; j++) {
enter.push(a[j]);//按照入栈顺序加入
while (enter.top() == left.front()) {//一旦和出栈序列首元素相同,就马上出栈,并且检查之前的元素
enter.pop();//出栈
left.pop();//更新出栈顺序
if ((!left.empty()) && (!enter.empty()) == 0) {
break;//空了就跳出循环
}
}
}
if (!enter.empty()) {
printf("No\n");//如果不能是空栈,就是No
}
else {
printf("Yes\n");//是空栈即为Yes
}
while (!enter.empty()) {
enter.pop();//清空,为下一次做准备
}
while (!left.empty()) {
left.pop();//清空,为下一次做准备
}
}
return 0;
}
请问为什么这段代码提交后会出现“Segmentation fault with invalid memory reference.”的runtime error报错(多次遇到这个问题,求教大家,谢谢