大家都说是水题。。好吧,那我就从水题开始做。。自己独立的做。正好最近在辅导大二的数据结构,自己也加强下对栈的理解和应用。 第一次那么完全的独立完成OJ的题,激动呐!读题目理解就废了我好多的时间...

  大家都说是水题。。好吧,那我就从水题开始做。。自己独立的做。正好最近在辅导大二的数据结构,自己也加强下对栈的理解和应用。

   第一次那么完全的独立完成OJ的题,激动呐!读题目理解就废了我好多的时间,虽说英语过了6级吧,还优秀呢。。。我惭愧了。要适应那种OJ的出题题目,学会去分析题目,只读懂是不行滴。还有最后提交的时候说Segmentaion Fault 。什么意思呢?没遇到过呀。。后来仔细研究了下。噢。。原来是它要求的测试数据是N<1000,我才设成100.说明,测试数据也很重要啊!以后要注意了。

   嘿嘿,还是学到好多东西的。加油!没事编编程哈~

ZOJ1259

#include <iostream>
#include <stack>
#define MAX 1001
using namespace std;

int main()
{
int n,block,i;
stack<int> s;
int order[MAX];
//freopen("acm.txt","r",stdin);

while(cin>>n && n){
while(cin>>order[0] && order[0]){
for(i=1;i<n;i++){
cin>>order[i];
}
block=1;
for(i=0;i<n;i++){
if(order[i]==block){ //直接过
if(block==n)
continue;
else
block++;
}
else if(!s.empty()){ //the stack is not empty
if(s.top()==order[i]){
s.pop();
}
else{
if(block==n){
break;
}
else{
s.push(block);
block++;
i--;
}
}
}
else if(block!=n){
s.push(block);
block++;
i--;
}
else{
break;
}
}//for
if(i==n){
cout<<"Yes"<<endl;
}
else{
cout<<"No"<<endl;
}
}//while
cout<<endl;
}//while
return 0;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值