2010-12-03 5 views
0

Ich bin auf der Suche nach gemeinsamen Zeichen aus einer Reihe von Zeichenfolgen unterschiedlicher Länge identifizieren. Lassen Sie mich zuerst das gleiche Problem hier gepostet haben, und der Autor ist irgendwie in der Lage, die Antwort herauszufinden. Aber ich konnte seine Lösung nicht finden. Ich habe versucht, meine Anfrage über dort zu posten, aber nicht sicher, ob ich irgendeine Antwort bekommen werde. Also poste ich als neuer Beitrag. (Dies ist der Link für alte qs Find common chars in array of strings, in the right order von-Strings-in-der-richtigen-Reihenfolge).identifizieren Zeichen in der richtigen Reihenfolge (Art von regulären Ausdruck) aus einem Array von Zeichenfolgen

Ich nehme das gleiche Beispiel von ihm.

Array ( 0 => '48ca135e0 $ 5', 1 => 'b8ca136a0 $ 5', 2 => 'c48ca13730 $ 5', :

der "+" ist die "Wildcard-Zeichen" Nehmen wir an, 3 => '48ca137a0 $ 5');

Sollte zurück:

$ Wildcard = '+ 8ca13 + 0 $ 5';

Das sieht für mich wie ein Standardproblem aus. also bezweifle ich, dass es dafür eine Bibliothek geben wird. Wenn nicht, zeigen Sie bitte etwas Licht, um das zu lösen.

Ich glaube nicht, char-by-char Arbeit vergleichen (wie in der Antwort erzählt), becoz das passende char kann überall kommen (zB: - arr1 [1] und arr2 [3] kann Index der übereinstimmenden einige sein Teilzeichenfolge und umgekehrt).

Grüßen

Antwort

0

Sieht aus wie Sie für die „längste gemeinsame Teilkette“ suchen. Die erste längste gemeinsame Teilkette ist 8ca13, die zweitlängste ist 0 $ 5. Sobald wir diese zwei Zeichenfolgen haben, können Sie beliebige Zeichenfolgen in der Gruppe verwenden und zusätzliche Zeichen durch ein einzelnes + ersetzen.

http://en.wikipedia.org/wiki/Longest_common_substring_problem

Verwandte Themen