Der Martin: Effizientes Finden eines längsten Substrings

Beitrag lesen

Hi,

Hat jemand eine Idee, wie ich in einer Zeichenkette, die aus zwei unterschiedlichen Buchstaben besteht, effizient das längste Vorkommen einer identischen Buchstabenfolge finden kann?

ja.

ghghggghgghghghhhhhhhhhhhgghghghghghgh
Und ich will die längste Folge von h's finden.
Mein Ansatz war, eine Schleife zu bauen, die von i=1 bis zur Länge des Strings schaut, ob eine Zeichenkette mit i h's im String enthalten ist.
Scheint mir aber sehr ineffizient.

Scheint mir auch so.

Kennt jemand eine bessere Lösung?

Iteriere zeichenweise durch den String. Lass einen Zähler mitlaufen.
Triffst du auf ein 'h', erhöhe den Zähler.
Bei jedem anderen Zeichen setzt du den Zähler wieder auf 0, merkst dir aber vorher den Wert (ggf. auch noch die Position im String), wenn er größer als der bisher gefundene Wert war.

Ciao,
 Martin

--
Keine Sorge, wir finden für jede Lösung ein Problem.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(