У меня есть набор строк (менее 30) длиной от 1 до ~ 30. Мне нужно найти подмножество как минимум из двух строк, которые разделяют максимально длинную комбинацию префикс + суффикс .
Например, пусть набор будет
Foobar
Facar
Faobaron
Gweron
Fzobar
Префикс / суффикс F/ar
имеет общую длину 3 и используется совместно Foobar
, Facar
и Fzobar
; префикс / суффикс F/obar
имеет общую длину 5 и используется совместно Foobar
и Fzobar
. Разыскиваемый префикс / суффикс: F/obar
.
Обратите внимание, что это не следует путать с самым длинным общим префиксом / суффиксом, поскольку только две или более строк из набора должны иметь один и тот же префикс + суффикс. Также обратите внимание, что сумма длин как префикса, так и суффикса - это то, что должно быть максимизировано, поэтому оба должны быть приняты во внимание. Префикс или суффикс может быть пустой строкой.
Кто-нибудь знает эффективный метод для реализации этого?