Treino (5 passos)
Pratique o ritual da TPS: Clarify → Rephrase → Algorithm → Code → Review. Faça os mini‑exercícios abaixo para fixar cada passo.
Clarify
Timebox: até 2 min
Checklist
- Perguntar constraints (tamanho, range, duplicados, negativos)
- Perguntar se pode ordenar ou mutar o input
- Confirmar objetivo: otimizar tempo ou memória
- Confirmar formato do output e exemplos
Frases úteis
- Quais são as constraints de n?
- Posso modificar o array/string de entrada?
- Existe garantia de solução única?
- Devo otimizar para tempo ou para memória?
Clarify: perguntas essenciais
Diante de um problema de substring, liste 4 perguntas de Clarify (constraints, mutação, duplicados, objetivo).
Rephrase
Timebox: até 1 min
Checklist
- Repetir o problema com suas palavras
- Dizer assinatura da função (inputs e output)
- Dar 1 exemplo pequeno
Frases úteis
- Então eu recebo X e preciso retornar Y.
- Vou implementar uma função com assinatura ...
- Por exemplo, para input ..., o output esperado é ...
Rephrase: assinatura + exemplo
Reescreva o problema 'Two Sum' com sua assinatura e um exemplo curto (entrada/saída).
Layout the Algorithm
Timebox: 3–4 min
Checklist
- Explicar abordagem simples e depois a ótima (se fizer sentido)
- Declarar tempo e espaço (Big O)
- Confirmar com o entrevistador antes de codar
Frases úteis
- A solução ótima evita loops aninhados usando um Hash Map.
- Complexidade: tempo ..., espaço ...
- Posso seguir com essa abordagem?
Algorithm: ideia + Big O
Descreva a ideia para 'Valid Anagram' (contagem) e informe tempo/espaço.
Write Your Code
Timebox: 10–15 min
Checklist
- Implementar com nomes claros e guard clauses
- Evitar dependência de IDE/autocomplete
- Manter foco (avisar que vai codar)
Frases úteis
- Vou focar em codar agora por alguns minutos.
- Depois eu volto para revisar e testar mentalmente.
Code: guard clause + nomes claros
Mostre uma função em pseudocódigo para 'maxAverage' (janela k) com guard clause para n<k e nomes claros.
Review Your Code
Timebox: até 5 min
Checklist
- Validar edge cases
- Testar mentalmente 2–3 inputs
- Refatorar pequena melhoria de legibilidade
- Citar melhorias futuras
Frases úteis
- Vamos validar edge cases: vazio, 1 elemento, duplicados.
- Vou fazer um teste mental rápido com um input pequeno.
- Se eu evoluísse isso, eu adicionaria testes e validações.
Review: checklist completo
Escreva o check final para uma solução sua: Big O, edge cases, teste mental e melhoria futura.