解題思路
其實就照題目敘述實作即可。
只是 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();
}
};
沒有留言:
張貼留言