Per una stringa di lunghezza L, voglio trovare la stringa più lunga che appare n (n < L) o più volte in THS stringa.più lunga sottostringa che appare n volte
Ad esempio, la sottostringa più lunga che si verifica 2 o più volte in "BANANA" è "ANA", una volta a partire dall'indice 1 e nuovamente a partire dall'indice 3. Le sottostringhe possono sovrapporsi.
Nella stringa "FFFFFF", la stringa più lunga che appare 3 o più volte è "FFFF".
L'algoritmo a forza bruta per n = 2 sarebbero selezionando tutte le coppie di indici nella stringa, quindi eseguendo lungo finché i caratteri sono diversi. La parte da corsa prende O (L) e il numero di coppie è O (L^2) (i duplicati non sono consentiti ma lo ignoro) quindi la complessità di questo algoritmo per n = 2 sarebbe O (L^3). Per maggiori valori di n, questo cresce in modo esponenziale.
Esiste un algoritmo più efficiente per questo problema?
Risposta eccellente (contrariamente al nome utente)! –