Frage: Ich habe eine lange Zeichenfolge, und ich muss die Anzahl der Vorkommen aller unter dieser Zeichenfolge vorhandenen Unterzeichenfolgen finden und eine Liste aller Unterzeichenfolgen und ihre Anzahl drucken (if count ist> 1) in absteigender Reihenfolge.Um Vorkommen aller Unterzeichenfolgen in Zeichenfolge C zu zählen #
Beispiel:
String = "abcdabcd"
Ergebnis:
Substrings Count
abcd 2
abc 2
bcd 2
ab 2
bc 2
cd 2
a 2
b 2
c 2
d 2
Problem: Mein String kann 5000 Zeichen lang sein, und ich bin nicht in der Lage eine effiziente Art und Weise zu finden, dies zu erreichen (Effizienz ist sehr wichtig. zur Anwendung)
Ist ein Algorithmus vorhanden oder ist Multi-Threading möglich? bitte hilfe.
bitte einen Blick auf * Suffixbaum haben * oder/und * Suffixarray * https://en.wikipedia.org/ wiki/Suffix_array –
@DmitryBychenko: Ich habe mit Suffix-Struktur und Suffix-Array versucht, aber es gibt keine schnelle Möglichkeit aus Suffix-Baum, um alle Unterzeichenfolgen zu finden. Wenn jedoch Sub-String als Eingabe angegeben ist, können Sie die Anzahl seiner Vorkommen sehr effizient durch Suffix-Baum finden. –
Mögliches Duplikat von [Eine gemeinsame Zeichenfolge in einer Liste von Zeichenfolgen finden] (http://stackoverflow.com/questions/13509277/find-a-common-string-within-a-list-of-strings) – Clint