Finde das längste gemeinsame Präfix?

7

In zwei Strings:

  

"Maria hatte ein kleines Lamm"
"Maria hatte ein großes Lamm"

sollte zurückgeben

  

"Maria hatte ein"

    
KJW 07.11.2011, 07:12
quelle

5 Antworten

26

Sie müssen kein StringBuilder verwenden - geben Sie einfach die Teilzeichenfolge zurück:

%Vor%     
dyross 07.11.2011 07:59
quelle
1
%Vor%
  1. a.startsWith (b) == wahr wenn nicht
  2. in einer Schleife das letzte Zeichen von str1 löschen und die Überprüfung von Schritt 1 wiederholen.
Azodious 07.11.2011 07:35
quelle
1
%Vor%

Dies ist möglicherweise nicht die optimale Lösung, aber das ist einfach zu verstehen und zu programmieren.

Ich habe diese Idee aus der Listenverschmelzungstechnik des Algorithmus merge-sort übernommen. Wenn Sie wenig über die List Merging Technik lesen, werden Sie die Logik meines Algorithmus besser verstehen.

    
Upul Bandara 07.11.2011 07:32
quelle
1

Diese Lösung wird auf ein Array mit mehreren Zeichenfolgen angewendet. Wenn Sie 3 oder 4 Zeichenfolgen haben, ist es besser, StringBuilder zu verwenden. Für 2 Strings ist es ok, Teilstrings zu verwenden. Code in C #:

%Vor%     
Kevman 14.04.2017 16:53
quelle
-2

Verwenden Sie die binäre Suche. Versuchen Sie, ganze Strings zu vergleichen. Wenn sie nicht gleich sind, versuchen Sie, die ersten Zeichen zu vergleichen. Wenn sie gleich sind, versuchen Sie die Strings zu teilen ( substring(0, str.length()/2 ). Usw. usw.

    
AlexR 07.11.2011 07:18
quelle

Tags und Links