Como encontrar a substring comum mais longa usando árvores?
O maior problema comum de substring de acordo com o wiki pode ser resolvido usando uma árvore de sufixos.
Dewiki:
As substrings mais comuns de um conjunto de strings podem ser encontradas construindo uma árvore de sufixos generalizada para as strings e, em seguida, localizando os nós internos mais profundos que possuem nós folha de todas as strings na subárvore abaixo dela
Eu não entendo isso.
Exemplo: se eu tiver:ABCDE
eXABCZ
então a árvore do sufixo é (alguns ramos deXABCZ
omitido devido ao espaço):
A maior substring comum éABC
mas não é eu não consigo ver como a descrição do wiki ajuda aqui.ABC
não são os nós internos mais profundos com nós de folhas.
Qualquer ajuda para entender como isso funciona?