考查代码能力的题目。也可以说是算法水题,呵呵。
推荐新手练习代码能力。
要增加难度就使用纯C实现一下stack,那么就有点难度了,可以使用数组模拟环形栈。做多了,我就直接使用STL了。
#include <stdio.h> #include <iostream> #include <stack> #include <string> using namespace std; int main() { stack<string> forward; stack<string> backward; string cur = "http://www.acm.org/"; string cmd; while (cin>>cmd) { if (cmd == "QUIT") break; if (cmd == "VISIT") { backward.push(cur); cin>>cur; puts(cur.c_str()); forward = stack<string>(); } else if (cmd == "BACK") { if (backward.empty()) { puts("Ignored"); } else { forward.push(cur); cur = backward.top(); backward.pop(); puts(cur.c_str()); } } else if (cmd == "FORWARD") { if (forward.empty()) { puts("Ignored"); } else { backward.push(cur); cur = forward.top(); forward.pop(); puts(cur.c_str()); } } } return 0; }