As many have mentioned before, the interview process involves five 45-minute sessions where you're asked to solve one to three problems. Fewer problems mean more in-depth questioning.
Some perspective: This is my second time interviewing here. If there's one thing to take away from this experience (and life in general), it's that it's still largely a matter of luck, even when a company strives for consistency. My two interview experiences were like night and day. The first time was chaotic; midway through the process, a fire alarm went off. One interviewer was late and seemed on the verge of collapse, and another spent the first half of the interview searching their phone for a question. The second on-site interview, a year later, went off without a hitch. I was able to solve all the problems presented, though I did stumble a few times along the way. With one interviewer, I was given two questions I had already solved (though not with Google). I informed him I had already encountered them and verbally explained my solutions. (Don't hesitate to do this; honesty is valued.)
A few pointers:
Some interviewers will keep asking questions until time runs out. If you've solved a problem, don't let the time idle. Verbally state that you're exploring potential better solutions (again, don't linger too long). Ask the interviewer if they believe a better solution exists, if they have any other questions, or simply state that you are done.
If asked about operation cost, it's rarely O(n), even if the problem suggests it.
When asked 'what data structure,' be aware they might be looking for a combination, such as a linked list and a hash map, for quick modifications and iteration.
Be familiar with collection structures and their methods for your chosen language, including the string object.
Don't be afraid to isolate tasks that are more about busywork than the core of the problem. For example, ask the interviewer if you can assume certain helper methods exist (they must agree to this first).
If you realize your solution is flawed, inform the interviewer, explain why it fails, and either rework it or start over. This happens. Hoping your interviewer doesn't notice is the worst approach.
...You can probably guess that some of these pointers stem from stumbling blocks I encountered. I'm planning another round with these folks in six months.
Given a string representing a sentence and a screen of fixed character width and character height, return the number of complete times the sentence wraps around without clipping words.
The following metrics were computed from 748 interview experiences for the Google Software Engineer role in Mountain View, California.
Google's interview process for their Software Engineer roles in Mountain View, California is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for Google's Software Engineer interview process in Mountain View, California.