Crie eficientemente um gráfico de palavras com a distância de Hamming

Quero construir um gráfico a partir de uma lista de palavras comDistância de Hamming de (digamos) 1 ou, em outras palavras, duas palavras serão conectadas se diferirem apenas de uma letra (eisl ->eist)

de modo que dado

words = [ lol, lot, bot ]

o gráfico seria

{
  'lol' : [ 'lot' ],
  'lot' : [ 'lol', 'bot' ],
  'bot' : [ 'lot' ]
}

A maneira mais fácil é comparar todas as palavras da lista e contar os diferentes caracteres; infelizmente, este é umO(N^2) algoritmo.

Qual algo / ds / estratégia posso usar para obter melhor desempenho?

Além disso, vamos assumir apenas caracteres latinos, e todas as palavras têm o mesmo comprimento.

questionAnswers(4)

yourAnswerToTheQuestion