Advent of Code: Solução Elegante para um Problema de Análise de Estado
2025-04-09
O último quebra-cabeça do Advent of Code envolve interpretar instruções `do()` e `don't()` que habilitam ou desabilitam a contribuição das instruções `mul` para uma soma. Expressões regulares têm dificuldades com esse estado, pois reconhecem linguagens regulares sem estado. O autor usa uma solução baseada em analisador, elevando-a a um transformador de estado para criar um analisador com estado. Este analisador lida eficientemente com instruções `do()`, `don't()` e `mul`, processando aproximadamente 1 MB de entrada em 0,12 segundos — uma melhoria significativa em relação a uma abordagem baseada em expressões regulares.