public class Main {
public static void main
(String[] args
) { // String[] strs = {"программист", "программа", "программный"};
String[] strs
= {"полет",
"поливка",
"полигон"}; String result
= longestCommonPrefix
(strs
); System.
out.
println("Наибольший общий префикс: " + result
); }
if (strs == null || strs.length == 0) return "";
// Берем первое слово за эталон
for (int i = 1; i < strs.length; i++) {
// Пока i-е слово не начинается с префикса
while (strs[i].indexOf(prefix) != 0) {
// Укорачиваем префикс на один символ с конца
prefix = prefix.substring(0, prefix.length() - 1);
// Если сократили до пустоты — общего префикса нет
if (prefix.isEmpty()) return "";
}
}
return prefix;
}
}
cHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAvLyAgU3RyaW5nW10gc3RycyA9IHsi0L/RgNC+0LPRgNCw0LzQvNC40YHRgiIsICLQv9GA0L7Qs9GA0LDQvNC80LAiLCAi0L/RgNC+0LPRgNCw0LzQvNC90YvQuSJ9OwogICAgICAgCiAgICAgICBTdHJpbmdbXSBzdHJzICA9IHsi0L/QvtC70LXRgiIsICLQv9C+0LvQuNCy0LrQsCIsICLQv9C+0LvQuNCz0L7QvSJ9OyAKICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbG9uZ2VzdENvbW1vblByZWZpeChzdHJzKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCd0LDQuNCx0L7Qu9GM0YjQuNC5INC+0LHRidC40Lkg0L/RgNC10YTQuNC60YE6ICIgKyByZXN1bHQpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGxvbmdlc3RDb21tb25QcmVmaXgoU3RyaW5nW10gc3RycykgewogICAgICAgIGlmIChzdHJzID09IG51bGwgfHwgc3Rycy5sZW5ndGggPT0gMCkgcmV0dXJuICIiOwoKICAgICAgICAvLyDQkdC10YDQtdC8INC/0LXRgNCy0L7QtSDRgdC70L7QstC+INC30LAg0Y3RgtCw0LvQvtC9CiAgICAgICAgU3RyaW5nIHByZWZpeCA9IHN0cnNbMF07CgogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc3Rycy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAvLyDQn9C+0LrQsCBpLdC1INGB0LvQvtCy0L4g0L3QtSDQvdCw0YfQuNC90LDQtdGC0YHRjyDRgSDQv9GA0LXRhNC40LrRgdCwCiAgICAgICAgICAgIHdoaWxlIChzdHJzW2ldLmluZGV4T2YocHJlZml4KSAhPSAwKSB7CiAgICAgICAgICAgICAgICAvLyDQo9C60L7RgNCw0YfQuNCy0LDQtdC8INC/0YDQtdGE0LjQutGBINC90LAg0L7QtNC40L0g0YHQuNC80LLQvtC7INGBINC60L7QvdGG0LAKICAgICAgICAgICAgICAgIHByZWZpeCA9IHByZWZpeC5zdWJzdHJpbmcoMCwgcHJlZml4Lmxlbmd0aCgpIC0gMSk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC8vINCV0YHQu9C4INGB0L7QutGA0LDRgtC40LvQuCDQtNC+INC/0YPRgdGC0L7RgtGLIOKAlCDQvtCx0YnQtdCz0L4g0L/RgNC10YTQuNC60YHQsCDQvdC10YIKICAgICAgICAgICAgICAgIGlmIChwcmVmaXguaXNFbXB0eSgpKSByZXR1cm4gIiI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHByZWZpeDsKICAgIH0KfQo=