Esiste un algoritmo che può essere utilizzato per trovare le frasi più comuni (o sottostringhe) in una stringa? Ad esempio, la seguente stringa avrebbe "ciao mondo", come la sua più comune di due lettere frase:Algoritmo per trovare le sottostringhe più comuni in una stringa
"hello world this is hello world. hello world repeats three times in this string!"
Nella stringa sopra, la stringa più comune (dopo il carattere stringa vuota, che ripete un infinito numero di volte) sarebbe il carattere dello spazio .
C'è un modo per generare un elenco di sottostringhe comuni in questa stringa, da più comune al meno comune?
Definire cosa intendi per frase, la sottostringa '" l "' è più comune di allora "ciao mondo" '. E ovviamente "ciao" è almeno tanto comune quanto "ciao mondo" ». – amit
@amit Intendevo davvero "sottostringa più comune in una stringa". –
Quindi la sottostringa più comune è la stringa vuota (ripete il numero infinito di volte). Il secondo dopo è il personaggio più comune. Trovarlo può essere fatto facilmente usando un [istogramma] (http://en.wikipedia.org/wiki/Histogram) in 'O (n)'. – amit