From 7c60dee83b436e8e8a667bf9f191beced8de4fc3 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Mon, 10 Mar 2025 00:36:13 -0600 Subject: chore: move cpp and rust code to directory --- other/browser_history.cpp | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 other/browser_history.cpp (limited to 'other/browser_history.cpp') diff --git a/other/browser_history.cpp b/other/browser_history.cpp new file mode 100644 index 0000000..df7d3cd --- /dev/null +++ b/other/browser_history.cpp @@ -0,0 +1,45 @@ +// 1472. Design Browser History +#include "leetcode.h" + +/* + * you have a browser of one tab where you start on the homepage and can visit + * another url, get back in the history number of steps or move forward in the + * history number of steps. implement BrowserHistory class (they're self + * explantory) + */ + +class BrowserHistory { +public: + BrowserHistory(string homepage) { curr = homepage; } + void visit(string url) { + h_forward = stack(); + h_back.push(curr); + curr = url; + } + string back(int steps) { + while (--steps >= 0 && !h_back.empty()) { + h_forward.push(curr); + curr = h_back.top(); + h_back.pop(); + } + return curr; + } + string forward(int steps) { + while (--steps >= 0 && !h_forward.empty()) { + h_back.push(curr); + curr = h_forward.top(); + h_forward.pop(); + } + return curr; + } + +private: + stack h_back, h_forward; + string curr; +}; + +int main() { + BrowserHistory *obj = new BrowserHistory("https.xyz"); + string param_2 = obj->back(1); + string param_3 = obj->forward(1); +} -- cgit v1.2.3