```cpp
#include <bits/stdc++.h>
using namespace std;
int q,n;
int push[100050],pop[100050],sum;
stack <int> s;
int main(){
scanf("%d",&q);
for (int i = 1; i <= q; i++) {
scanf("%d",&n);
memset(push,0,sizeof(push));
memset(pop,0,sizeof(pop));
sum = 1;
for (int i = 1; i <= n; i++) scanf("%d",&push[i]);
for (int i = 1; i <= n; i++) scanf("%d",&pop[i]);
for (int i = 1; i <= n; i++) {
s.push(push[i]);
while (pop[sum] == (s.top())) {
s.pop();
sum++;
if (s.empty()) break;
}
}
if (s.empty()) printf("Yes\n");
else printf("No\n");
while (!s.empty()) s.pop();
}
return 0;
}
```
by liuruiqing @ 2024-04-27 22:19:20
报错翻译:
运行时错误。
接收信号11:内存引用无效的分段故障。
by liuruiqing @ 2024-04-27 22:21:23
有没有可能你空栈时使用了 top() 语句
by liuruiqing @ 2024-04-27 22:22:29
```cpp
if(a.top()==b2[j]) a.pop();
```
这句可能栈为空访问top,直接RE
@[lucy2012](/user/1252442)
by liuruiqing @ 2024-04-27 22:23:37
@[liuruiqing](/user/1118614) ok,谢谢啦!
by lucy2012 @ 2024-04-27 22:25:17