13 solutions
-
2
感觉我代码挺好理解的,不知道有没有bug
#include <bits/stdc++.h> using namespace std; int main() { int n; cin>>n; stack <int> s; int flag=0; int k[1007];//开个数组读入需要的序列 for(int i=0;i<n;i++) { scanf("%d",&k[i]); } for(int i=1;i<=n;i++) { while(!s.empty()&&s.top()==k[flag]) { s.pop(); flag++; } s.push(i); }//中途可以先出车站的就先出去,不能不出的就存下来 if(!s.empty()) { for(int j=flag;j<n;j++)//flag可以记录从车站出去的火车到第几辆了 { if(k[j]==s.top()) s.pop(); else { break; } } }//继续匹配车站中剩下的 s.empty()?cout<<"YES":cout<<"NO";//判断 return 0; }
Information
- ID
- 291
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 6
- Tags
- # Submissions
- 139
- Accepted
- 44
- Uploaded By