1472. 設計瀏覽器歷史記錄

解題思路

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];
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章