10 條 Google 面試難題：你自問識答幾多？
Google 擁有一流的工作環境（以外國的辦公室為準），但同時亦需要大家十分努力工作；而入職 Google 對於很多 IT 人來說，相信是一個夢想，不過要入職 Google 並不容易，而且平均由網上申請、首次溝通、電話交談、Google Hangout、約見、面試、考試、討論人工待遇、填 Form 入職等，幾乎用上兩個月時間，有些情況可能會更久。
當然這一切都是值得的，事關入職 Google 對於自己的 Career Path 有很多良性影響，同時在 Google 之中你的確能與世界一流的工程人員合作，獲益不淺；Google 是一家極具創意的公司，而辦公室環境與別不同不在話下，甚至連面試時的問題都與別不同，以下列出於網絡上搜集回來的常見 10 大 Google 面試難題，如果你自問有天份，又希望未來入職 Google 的話，可以看看自己懂得回答的有幾多。由於面試時基本上以英文為主，所以以下的試題只提供英文版本。
If each document contains a set of keywords, and is associated with a numeric attribute, how to build indices?
How to design a search engine? If each document contains a set of keywords, and is associated with a numeric attribute, how to build indices?
You’re the captain of a pirate ship, and your crew gets to vote on how the gold is divided up. If fewer than half of the pirates agree with you, you die. How do you recommend apportioning the gold in such a way that you get a good share of the booty, but still survive?
Write a program to find depth of binary search tree without using recursion.
Explain the significance of “dead beef”.
Design a class library for writing card games.
You need to check that your friend, Bob, has your correct phone number, but you cannot ask him directly. You must write a the question on a card which and give it to Eve who will take the card to Bob and return the answer to you. What must you write on the card, besides the question, to ensure Bob can encode the message so that Eve cannot read your phone number?
How are cookies passed in the HTTP protocol?
You are given a the source to a application which is crashing when run. After running it 10 times in a debugger, you find it never crashes in the same place. The application is single threaded, and uses only the C standard library. What programming errors could be causing this crash? How would you test each one?
You have a stream of infinite queries (ie: real time Google search queries that people are entering). Describe how you would go about finding a good estimate of 1000 samples from this never ending set of data and then write code for it.