определить общие символы в правильном порядке (вид регулярного выражения) из массива строк - PullRequest
0 голосов
/ 03 декабря 2010

Я ищу, как определить общие символы из набора различных строк. длина. Сначала позвольте мне рассказать о той же проблеме, что и здесь, и автор каким-то образом может найти ответ. Но я не мог получить его решение. Я пытался опубликовать свой запрос там, но не уверен, получу ли я ответ. Так что я публикую как новый. (это ссылка для старого qs Найти общие символы в массиве строк, в правильном порядке из-строки-в-правой порядке).

Я беру с него тот же пример.

Давайте предположим, что "+" является "символом подстановки":

Array ( 0 => '48ca135e0 $ 5', 1 => 'b8ca136a0 $ 5', 2 => 'c48ca13730 $ 5', 3 => '48ca137a0 $ 5');

Должен вернуться:

$ подстановочные = '+ 8ca13 + 0 $ 5';

Это выглядит для меня как стандартная проблема. поэтому я сомневаюсь, что будет какая-то библиотека за это. Если нет, то покажите немного света для решения этой проблемы.

Я не думаю, что сравнивая работу за символом (как сказано в ответе), потому что соответствующий символ может прийти куда угодно (например: - arr1 [1] и arr2 [3] могут быть начальным индексом соответствия некоторой подстроки и другой путь тоже).

С уважением,

1 Ответ

0 голосов
/ 03 декабря 2010

Похоже, вы ищете "самую длинную общую подстроку".Первая самая длинная общая подстрока - 8ca13, вторая самая длинная - 0 $ 5.Когда у нас есть эти две строки, вы можете взять любую из строк в наборе и заменить дополнительные символы одним +.

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

...