#include <iostream> #include <stdio.h> #include <stack> #include <ctime> using namespace std; stack<int> s; int a[1002]; int main(){ int n; while(1){ while(!s.empty())s.pop(); scanf("%d",&n); if(n=-0)break; for(int i=0;i<n;i++){ scanf("%d",&a[i]); } int j=0; for(int i=1;i<=n;i++){ s.push(i); while(!s.empty()&&s.top()==a[j]){ s.pop(); j++; } } if(s.empty())printf("Yes\n"); else printf("No\n"); } return 0; }
时间: 2024-04-01 18:37:23 浏览: 32
使用include <iostream>时一定要加using namespace std
这是一段使用栈来判断一个序列是否为另一个序列的出栈顺序的代码。具体来说,对于输入的n和序列a,程序将1~n的数依次压入栈中,同时检查栈顶是否与a[j]相等,如果相等则弹出栈顶并将j加1,直到栈为空或栈顶与a[j]不相等为止。若最终栈为空,则a是1~n的数的一个出栈顺序,输出"Yes";否则输出"No"。
另外,程序中的判断语句if(n=-0)应该是if(n==0)的笔误。
阅读全文