题目链接: http://poj.org/problem?id=1028
4、5个月前就做这题了,当时是用数组模拟的,结果RE到吐血!这次直接用STL模板,一次AC!文盲的悲哀啊!
#include<iostream>
#include<fstream>
#include<string>
#include<stack>
using namespace std ;
int main(){
stack<string> a ;
stack<string> b ; //b记录BACK操作前的页面
string c ;
a.push("http://www.acm.org/") ;
//fstream cin("x.in") ;
while(cin>>c&&c!="QUIT"){
if(c=="VISIT"){
cin >> c ;
a.push(c) ;
while(!b.empty()) b.pop() ; //b不为空则将b清空
cout << c << endl ;
}else
if(c=="BACK"){
c = a.top() ;
a.pop() ;
if(a.empty()){
cout << "Ignored" << endl ;
a.push(c) ;
}
else{
cout << a.top() << endl ;
b.push(c) ;
}
}else{
if(b.empty()) cout << "Ignored" << endl ;
else{
cout << b.top() << endl ;
a.push(b.top()) ;
b.pop() ;
}
}
}
return 0 ;
}
#include<fstream>
#include<string>
#include<stack>
using namespace std ;
int main(){
stack<string> a ;
stack<string> b ; //b记录BACK操作前的页面
string c ;
a.push("http://www.acm.org/") ;
//fstream cin("x.in") ;
while(cin>>c&&c!="QUIT"){
if(c=="VISIT"){
cin >> c ;
a.push(c) ;
while(!b.empty()) b.pop() ; //b不为空则将b清空
cout << c << endl ;
}else
if(c=="BACK"){
c = a.top() ;
a.pop() ;
if(a.empty()){
cout << "Ignored" << endl ;
a.push(c) ;
}
else{
cout << a.top() << endl ;
b.push(c) ;
}
}else{
if(b.empty()) cout << "Ignored" << endl ;
else{
cout << b.top() << endl ;
a.push(b.top()) ;
b.pop() ;
}
}
}
return 0 ;
}