class BrowserHistory {
Deque<String> forward;
Deque<String> backward;
String curUrl;
public BrowserHistory(String homepage) {
forward = new ArrayDeque<>();
backward = new ArrayDeque<>();
curUrl = homepage;
}
public void visit(String url) {
backward.offerFirst(curUrl);
curUrl = url;
forward = new ArrayDeque<>();
}
public String back(int steps) {
while (steps > 0 && !backward.isEmpty()) {
forward.offerFirst(curUrl);
curUrl = backward.pollFirst();
steps--;
}
return curUrl;
}
public String forward(int steps) {
while (steps > 0 && !forward.isEmpty()) {
backward.offerFirst(curUrl);
curUrl = forward.pollFirst();
steps--;
}
return curUrl;
}
}
/**
* Your BrowserHistory object will be instantiated and called as such:
* BrowserHistory obj = new BrowserHistory(homepage);
* obj.visit(url);
* String param_2 = obj.back(steps);
* String param_3 = obj.forward(steps);
*/