解題思路
其實就照題目敘述實作即可。
只是 back() 的部分要注意,如果 stack 裡面只剩一個就不要 pop 了,不然連首頁都會不見。
程式碼
class BrowserHistory { public: stack<string> backHistory; stack<string> forwardHistory; BrowserHistory(string homepage) { backHistory.push(homepage); } void visit(string url) { while (!forwardHistory.empty()) forwardHistory.pop(); backHistory.push(url); } string back(int steps) { while (steps && backHistory.size() > 1) { forwardHistory.push(backHistory.top()); backHistory.pop(); steps--; } return backHistory.top(); } string forward(int steps) { while (steps && !forwardHistory.empty()) { backHistory.push(forwardHistory.top()); forwardHistory.pop(); steps--; } return backHistory.top(); } };
沒有留言:
張貼留言