Autor Beitrag
SyLuS
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 22.01.14 10:31 
Hallo ihr lieben,

ich bin mal wieder auf ein Problem gestoßen und habe bisher noch keine Lösung gefunden:

Und zwar habe ich eine List<string> und möchte nun den größten gemeinsamen Teilstring in allen strings suchen.

Beispiel:
ausblenden Quelltext
1:
2:
3:
Text - 001
Text - 002
Text - 003

Hier sollte das Resultat der Operation "Text - " sein.
ausblenden Quelltext
1:
2:
3:
4:
5:
001: Ein weiterer Text15423
002: Ein weiterer Text15424
003: Ein weiterer Text15425
...
1999: Ein weiterer Text20009

Hier sollte das Resultat dann ": Ein weiterer Text" sein.

Habt ihr eine Idee, wie man sowas bewerkstelligen kann?
Ich könnte natürlich durch die ganzen chars iterieren und characterweise die strings vergleichen aber das erscheint mir ein wenig ineffizient.

Habt ihr eine Idee?

LG

Marc

Editiert: Fehler im eigenen Beispiel entfernt, wie peinlich

Moderiert von user profile iconTh69: C#- und Code-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 22.01.14 11:03 
Zitat:
Hier sollte das Resultat der Opteration "Text - " sein.


Warum nicht "Text - 00"? Das wäre für mich der größte gemeinsamen Teilstring. Wenn du eine andere Interpretation von Teilstring hast solltest du die genauer erklären.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4799
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 22.01.14 11:31 
Hallo SyLuS,

das Problem ist auch bekannt als Longest common substring problem und unter Longest Common Substring Problem - Dynamic Programming (C#) gibt es z.B. eine C#-Implementation.

Für diesen Beitrag haben gedankt: SyLuS
SyLuS Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 22.01.14 17:08 
@ Ralf: Ja du hast natürlich recht. Der größte meinsame Teil wäre in der Tat "Text - 00". Bin wohl gleich mal davon ausgegangen, dass sich die restlichen 0en mit entsprechender Länge der Liste dann erledigt haben ;-)

Danke für den Tipp mit dem Longest Common Substring. Das hat mir gefehlt.