Ich habe Zeichenfolgen, von denen jede eine oder mehrere Kopien einer Zeichenfolge ist. Zum Beispiel:So teilen Sie eine Zeichenfolge in wiederholte Teilzeichenfolgen
L = "hellohellohello"
M = "good"
N = "wherewhere"
O = "antant"
Ich mag solche Strings in eine Liste teilen, so dass jedes Element nur den Teil hat, der wiederholt wurde. Zum Beispiel:
splitstring(L) ---> ["hello", "hello", "hello"]
splitstring(M) ---> ["good"]
splitstring(N) ---> ["where", "where"]
splitstring(O) ---> ["ant", "ant"]
Da die Strings jeweils über 1000 Zeichen lang sind, wäre es großartig, wenn dies auch einigermaßen schnell wäre.
Beachten Sie, dass in meinem Fall die Wiederholungen alle am Anfang des Strings beginnen und keine Lücken dazwischen haben, also ist es viel einfacher als das allgemeine Problem, maximale Wiederholungen in einem String zu finden.
Wie kann man das tun?
nehmen einen Blick auf diese [Frage] (http://stackoverflow.com/questions/11090289/find-longest-repetitive-sequence-i n-a-string) Ich glaube du suchst nach etwas ähnlichem? Außerdem ist die Komplexität dieser Methode O (n), also sollte es ziemlich schnell gemäß Ihrer Anforderung sein. –
@MridulKashyap Meine Frage ist viel einfacher, da meine Wiederholungen am Anfang der Zeichenfolge beginnen und keine Lücken dazwischen haben. – eleanora