解題思路
1、利用棧的思想
2、void visit(string url) 從當前頁跳轉訪問 url 對應的頁面 。執行此操作會把瀏覽歷史前進的記錄全部刪除。百思不得其解就是因爲這一句沒有理解,意爲只要visit()新的界面,那麼當前界面前的界面就會 被刪除,使得新頁面直接在原頁面的上方。
代碼
class BrowserHistory {
public:
int pos;
int top;
string history[5001];
BrowserHistory(string homepage) : pos(-1), top(0) {
visit(homepage);
}
void visit(string url) {
pos ++;//這句很關鍵
top = pos;
history[top++] = url;
}
string back(int steps) {
if(steps > pos) {
steps = pos;
}
pos -= steps;
return history[pos];
}
string forward(int steps) {
steps = min(steps, top - pos - 1);
pos += steps;
return history[pos];
}
};