Algorytm do znajdowania najczęstszych podciągów w ciągu
Czy jest jakiś algorytm, który można wykorzystać do znalezienia najpowszechniejszych fraz (lub podciągów) w ciągu? Na przykład następujący ciąg oznaczałby „hello world” jako najpowszechniejszą frazę dwuliterową:
"hello world this is hello world. hello world repeats three times in this string!"
W powyższym ciągu najbardziej popularnym ciągiem znaków (po pustym znaku ciągu, który powtarza nieskończoną liczbę razy) byłby znak spacji.
Czy istnieje sposób na wygenerowanie listy wspólnych podciągów w tym łańcuchu, od najczęstszych do najmniej popularnych?