您的位置:首页 > 理论基础 > 数据结构算法

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

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

第一次那么完全的独立完成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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐