These Google interview questions are some of my favorites collected from different sources. Every Programmer know that Google is one of the best technology company and its dream for many software developer to work for google, but at same time interview process at google is very tough and only few genuine intelligent programmers get through there interview process. Google interview questions are always been a good topic of discussion when few young software developer gathered around, I can still remember when one of my friend got call from google for interview then how whole bunch was got excited. We have searched a lot on internet on google interview questions and answers for him and us and then make a note of some of the best questions for preparation. I am listing down some google interview questions from that list. Apart from the popular questions asked in various Google Interview for software engineers or developers, books on algorithm and data structure plays a lot more important roles. Books like Algorithms for Interviews and Introduction to Algorithms are must read for any Programmer, who is serious about converting Google interview or similar companies like Facebook, Amazon and Microsoft. Once you start preparing for Google, rest of them become very easy.
Answers of these Google interview questions can be found by doing google :) , Also each question in itself demand a blog post and I will try to cover those one by one as and when time allows. I have divided all interview questions on different category like data structure, puzzles, operating system , Software Design and Coding etc for better organization. In the last section, I have shared some top class, must read books for Google Interview preparation. It contains books like Are You Smart Enough to Work at Google?, which is not only a good read but tells you a lot about Google interview, it's process. Before starting preparation, a must read to get yourself motivated.
Google Interview questions answers for Software Engineers
Google interview questions based on data structure
Here are few questions from data structures appeared on various google interviews, data-structure is a complex topic and can get very complex at google and we have purposefully not collected very tough data-structure questions at that time because of time limit and we wanted to gain some confidence to solve moderate questions, though this may not be a good strategy for many people but it depends how much knowledge you have and how confident you are on data-structure.
1) find out the fastest way to locate the largest element in a circular sorted array ?
2) You have a binary search tree and integer n, find out the most efficient way to locate two nodes of the
three whose summation is equals to "n" ?
3) How do you convert a max heap to min heap ?
4) You have two list L1 and L2 write an algorithm to see if both the lists are equivalent or not?
5) How do you figure out time and space complexity of recursive function ?
6) how will you implement three stacks with one array.
See here for few more questions on data structure and algorithms
Google interview questions based on operating system
Here are some of my favorite Google interview questions from various operating systems like Unix and Linux. Good knowledge of how operating system works always helps to excel any programming interview and Google is not an exception.
1) If you have given a chance to rewrite linux, how will you do that ?
2) Explain how congestion control works in the TCP protocol ?
3) How would you optimize TCP Protocol without going on UDP ways ?
Google interview questions on Software design
Here are some of software design questions from various Google interviews for software engineer position. Software design is critical piece to get though Google interview and people has almost always faced one of two questions from this category.
1) You have provided a set of points across globe as latitudes and longitudes ? How will you determine
points which are within a particular mile ?
2) Can you design data package transfer form London to Tokyo ?
3) Design a distributed system for storing a static set of (key, value) pairs which will behave like
a hashtable , user will provide you key and system will return value.
4) Design Algorithm for Lift to get minimum waiting time on each floor ?
For more questions on Object oriented design and software design see here
Google interview questions on Coding
There will always be some questions on coding in Google interview, especially if it is for software engineer or developer role. They want to see you writing code. There is no language barrier and you can choose whatever programming language you are most comfortable with.Google interview questions on coding mostly requires good knowledge of recursion, data structure and good familiarity of programming language.
1)Can you write code in Java or C++ to find the power set of a given set.
for example if S={a,b} the power set is P={{},{a},{b},{a,b}} ( you can also choose any of your favorite programming language)
2) Write code in Java to find out whether a binary tree is a mirror image of itself or not. Code should be thread-safe?
3) Can you write code to implement your own hashtable in C++ or Java?
4) Write code to find out number of occurrence of a number in a sorted array ?
5) Can you implement a Generic LRU Cache in Java ?
6) write a program to solve a Rubik's cube in any programming language.
Miscellaneous Google interview questions
In this category of google interview question you will see mostly behavioral questions, some time before throwing data-structure questions they ask light question and some time after exhaustive screening they ask based on your profile and luck. Apart from below they also questions based on puzzles and riddles.
1) How Google Search work ? If asked to you how will you design it to scale and fast at same time ?
2) Why do you want to work with Google ?
3) Which Google product you like most and why ?
4) Do you like coding or designing application ?
5) Questions about your previous project and work experience.
Puzzles are another popular topic on various google interview and there are lot of puzzles available in internet as well make sure you prepare on puzzles before appearing to any google interview. Some time they even ask questions on lateral thinking and tricks which doesn't require complex logic but sharp mind to guess. See this list of the most popular puzzles asked in programming interviews.
Books to Prepare Google Interview Questions
There are lot of books available in market, which covers lot of different topics asked in Google or Amazon interviews, but most of them lack quality. In order to succeed in Google, most important thing is data structure and algorithm topic along with problem solving skills, if you have that, half of battle is won. Following are some of the popular books, which programmers prefer during preparation of Google interviews:
1. Algorithms For Interviews By Adnan Aziz and Amit Prakash
This book is especially written for Google interviews. Authors has put decent effort to not only show how to use algorithm but also focus on problem solving skill. A must read for any Google aspirants.
2. Are You Smart Enough to Work at Google? By William Poundstone
Google is known for asking insanely difficult puzzles, this books takes you on both. It's readable, fun and same time introduce hard realities of Google interviews. You will be glued to read this book, after reading the first interview experience :)
3. Introduction to Algorithms (Includes CD-Rom) By Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein
Another top class book on topic of Algorithm. As I said, data structure and algorithms are extremely important to survive and excel google interviews. Read this book at least one time, if not two. Another must read for Google aspirants.
4. Top 10 coding interview problems asked in Google with solutions: Algorithmic Approach
One more great book to prepare for Google interviews. This book present 10 top quality code questions asked on Google, with full solution including pseudo code and C++. This book fills lot of gap on how to solve coding questions on Google, something freshers and software engineers lacks.
That's all on Google interview questions .What is most important is that most of the questions asked in google is original and you don't see them again. practice can give you guidance on how to tackle those questions.