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.