全RE球助

P4387 【深基15.习9】验证栈序列

```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


|