leetcode 1472. デザインブラウザ履歴(C++)
3893 ワード
単一のラベルページのみをサポートするブラウザがあります.最初に閲覧したページは
例:
ヒント: は、
C++
homepage
で、他のサイトurl
にアクセスしたり、閲覧履歴の中でsteps
歩後退したり、steps
歩前進したりすることができます.BrowserHistory
クラスを実現してください.BrowserHistory(string homepage)
、ブラウザクラスをhomepage
で初期化します.void visit(string url)
は、現在のページからurl
に対応するページにジャンプしてアクセスする.この操作を実行すると、ブラウズ履歴が進むレコードがすべて削除されます.string back(int steps)
閲覧履歴でsteps
歩後退.ブラウズ履歴でx
歩まで後退し、steps > x
歩まで後退するしかない場合は、x
歩だけ後退します.steps
ステップ以降のurl
まで後退してください.string forward(int steps)
閲覧履歴でsteps
歩進みます.ブラウズ履歴でx
歩、steps > x
歩までしか前進できない場合は、x
歩だけ前進します.steps
歩以上進んだ後のurl
に戻ってください.例:
:
["BrowserHistory","visit","visit","visit","back","back","forward","visit","forward","back","back"]
[["leetcode.com"],["google.com"],["facebook.com"],["youtube.com"],[1],[1],[1],["linkedin.com"],[2],[2],[7]]
:
[null,null,null,null,"facebook.com","google.com","facebook.com",null,"linkedin.com","google.com","leetcode.com"]
:
BrowserHistory browserHistory = new BrowserHistory("leetcode.com");
browserHistory.visit("google.com"); // "leetcode.com" 。 "google.com"
browserHistory.visit("facebook.com"); // "google.com" 。 "facebook.com"
browserHistory.visit("youtube.com"); // "facebook.com" 。 "youtube.com"
browserHistory.back(1); // "youtube.com" , "facebook.com" "facebook.com"
browserHistory.back(1); // "facebook.com" , "google.com" "google.com"
browserHistory.forward(1); // "google.com" , "facebook.com" "facebook.com"
browserHistory.visit("linkedin.com"); // "facebook.com" 。 "linkedin.com"
browserHistory.forward(2); // "linkedin.com" , 。
browserHistory.back(2); // "linkedin.com" , "facebook.com" , "google.com" , "google.com"
browserHistory.back(7); // "google.com", "leetcode.com" , "leetcode.com"
ヒント:
1 <= homepage.length <= 20
1 <= url.length <= 20
1 <= steps <= 100
homepage
およびurl
はすべて'.'のみを含むあるいは英語のアルファベットを小文字にします.5000
回のvisit
、back
、およびforward
関数を最大で呼び出す.C++
class BrowserHistory
{
private:
vector tmp;
int idx;
public:
BrowserHistory(string homepage)
{
idx=0;
tmp.push_back(homepage);
}
void visit(string url)
{
if(idx=0)
{
idx-=steps;
}
else
{
idx=0;
}
return tmp[idx];
}
string forward(int steps)
{
if(idx+stepsvisit(url);
* string param_2 = obj->back(steps);
* string param_3 = obj->forward(steps);
*/