标签:
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 31906 | Accepted: 14242 |
Description
Input
Output
Sample Input
VISIT http://acm.ashland.edu/ VISIT http://acm.baylor.edu/acmicpc/ BACK BACK BACK FORWARD VISIT http://www.ibm.com/ BACK BACK FORWARD FORWARD FORWARD QUIT
Sample Output
http://acm.ashland.edu/ http://acm.baylor.edu/acmicpc/ http://acm.ashland.edu/ http://www.acm.org/ Ignored http://acm.ashland.edu/ http://www.ibm.com/ http://acm.ashland.edu/ http://www.acm.org/ http://acm.ashland.edu/ http://www.ibm.com/ Ignored
思路:
终于通过这道题目尝试了下C++里面的string类,结果发现尼玛和java里面的完全没两样啊
没有太大的难度,就是按照题目的操作模拟一下就可以,有个地方第一次提交的时候出错了,就是BACK和FORWARD这两种情况
当stack为空的时候,他们是不会把tmp_url压进栈的,这点一开始没有注意到,debug一下就发现了
还有一开始准备用switch,结果发现这个函数只能够对int型变量操作
#include <iostream> #include <stack> #include <string> using namespace std; int main() { string command; stack<string> f,b; string tmp_url = "http://www.acm.org/"; string new_url; while(cin>>command) { if(command == "VISIT") { b.push(tmp_url); cin>>tmp_url; while(!f.empty()){f.pop();} cout<<tmp_url<<endl; } if(command == "BACK") { if(!b.empty()) { f.push(tmp_url); tmp_url = b.top(); b.pop(); cout<<tmp_url<<endl; } else { cout<<"Ignored"<<endl; } } if(command == "FORWARD") { if(!f.empty()) { b.push(tmp_url); tmp_url = f.top(); f.pop(); cout<<tmp_url<<endl; } else { cout<<"Ignored"<<endl; } } if(command == "QUIT") break; } return 0; }
标签:
原文地址:http://www.cnblogs.com/immortal-worm/p/5028103.html