(This question has been seen in the interviews of the following companies: Airbnb)
Airbnb: Design webbrowser back button
Your web browser supports will support three actions: back, forward and open. The init webpage is “about:blank”.
Given a sequence of commands. Return the result page.
public void backButton(String[] cmds) {
Stack forwardStack=new Stack();
Stack backwardStack=new Stack();
String currentPage="about:blank";
for(int i = 0; i < cmds.length; i++)
{
String cmd = cmds[i];
if(cmd.equals("open"))
{
backwardStack.push(currentPage);
currentPage=cmds[++i];
forwardStack = new Stack();
}
else if(cmd.equals("back"))
{
if(!backwardStack.isEmpty()){
forwardStack.push(currentPage);
currentPage=backwardStack.pop();
}
}
else if(cmd.equals("forward"))
{
if(!forwardStack.isEmpty()){
backwardStack.push(currentPage);
currentPage=forwardStack.pop();
}
}
}
return currentPage;
}
Get one-to-one training from Google Facebook engineers
Top-notch Professionals
Learn from Facebook and Google senior engineers interviewed 100+ candidates.
Most recent interview questions and system design topics gathered from aonecode alumnus.
One-to-one online classes. Get feedbacks from real interviewers.
Customized Private Class
Already a coding expert? - Advance straight to hard interview topics of your interest.
New to the ground? - Develop basic coding skills with your own designated mentor.
Days before interview? - Focus on most important problems in target company question bank.