Perguntas de Entrevista para Software Engineer na Google (2026)
O processo de engenheiro de software da Google é famoso pela ênfase em estruturas de dados e algoritmos. A maioria dos candidatos enfrenta duas ou três rondas de programação, pelo menos uma ronda de design de sistemas (para L4 e acima), e uma ronda comportamental que a Google chama internamente de "Googleyness and Leadership". O nível exigido não é tanto sobre truques exóticos, mas sobre soluções limpas, corretas e bem comunicadas, com uma análise de complexidade rigorosa.
Os entrevistadores são treinados para avaliar como pensa, não se memorizou um problema específico. Querem ouvi-lo esclarecer o problema, declarar pressupostos, raciocinar em voz alta sobre tempo e espaço, e lidar com perguntas de seguimento que apertam as restrições. Uma força bruta funcional que depois otimiza vence uma solução ótima meio memorizada que não consegue explicar.
As perguntas abaixo refletem as categorias em que a Google se apoia. Pratique narrar a sua abordagem: a diferença entre um sinal L3 e L4 é frequentemente comunicação e a capacidade de discutir trade-offs, não a velocidade bruta de resolução de problemas.
Perguntas de Entrevista para Software Engineer na Google e Como Respondê-las
1. Dada uma lista de intervalos, combine todos os que se sobrepõem.
Abordagem: Ordene por hora de início, depois percorra uma vez combinando quando o início atual ≤ o fim anterior. O(n log n) é dominado pela ordenação. Declare a invariante de ordenação em voz alta — os entrevistadores da Google valorizam uma abordagem claramente declarada antes de programar.
2. Encontre o k-ésimo maior elemento num array não ordenado.
Abordagem: Ofereça um heap mínimo de tamanho k (O(n log k)) e quickselect (O(n) em média). Discuta o trade-off: quickselect é mais rápido em média mas O(n²) no pior caso; o heap é mais estável e funciona em streaming. Nomear ambos sinaliza profundidade.
3. Serialize e desserialize uma árvore binária.
Abordagem: Escolha um percurso (preorder com marcadores null é limpo) e mostre que ambas as direções são consistentes. Discuta o delimitador e como reconstrói. A Google gosta de ver que lida explicitamente com o caso do nó null.
4. Word ladder: sequência de transformação mais curta entre duas palavras.
Abordagem: Modele como BFS num grafo onde as arestas ligam palavras que diferem por uma letra. Discuta como construir a adjacência de forma eficiente (buckets com wildcard) e porque razão o BFS garante o caminho mais curto. O BFS bidirecional é um bom seguimento.
5. Conceba uma cache LRU.
Abordagem: Mapa de hash + lista duplamente ligada para get/put em O(1). Percorra explicitamente o caminho de evicção. É um aquecimento clássico da Google que testa se consegue combinar duas estruturas de forma limpa sob pressão de tempo.
6. Número de ilhas numa grelha 2D.
Abordagem: DFS ou BFS flood fill a partir de cada célula de terra não visitada, contando componentes. O(linhas×colunas). Mencione a marcação in-place versus um conjunto de visitados como trade-off de espaço — um seguimento comum da Google.
7. Conceba um sistema para devolver as k consultas de pesquisa mais frequentes.
Abordagem: Delimite primeiro a proporção de leitura vs escrita. Discuta um count-min sketch ou um heap sobre um mapa de hash para um top-k aproximado em grande escala, e como faria o sharding. Isto liga-se à ronda de design de sistemas que muitos processos da Google incluem.
8. Fale-me de uma vez em que teve de tomar uma decisão sem dados completos.
Abordagem: STAR. A ronda "Googleyness" da Google procura conforto com a ambiguidade, uma tendência para a ação equilibrada com discernimento, e aprendizagem a partir do resultado. Escolha um exemplo real com um resultado concreto e o que faria de forma diferente.
Receba ajuda em tempo real na sua entrevista de software engineer na Google
Numa entrevista real da Google, o Natively transcreve a pergunta, lê o documento de código partilhado através de OCR no ecrã, e sugere uma abordagem estruturada com análise de complexidade em menos de 500 ms — totalmente no seu dispositivo. Use-o para se manter estruturado nas rondas de algoritmos e Googleyness.
