fork download
  1. public class Main {
  2. public static void main(String[] args) {
  3. // String[] strs = {"программист", "программа", "программный"};
  4.  
  5. String[] strs = {"полет", "поливка", "полигон"};
  6. String result = longestCommonPrefix(strs);
  7. System.out.println("Наибольший общий префикс: " + result);
  8. }
  9.  
  10. public static String longestCommonPrefix(String[] strs) {
  11. if (strs == null || strs.length == 0) return "";
  12.  
  13. // Берем первое слово за эталон
  14. String prefix = strs[0];
  15.  
  16. for (int i = 1; i < strs.length; i++) {
  17. // Пока i-е слово не начинается с префикса
  18. while (strs[i].indexOf(prefix) != 0) {
  19. // Укорачиваем префикс на один символ с конца
  20. prefix = prefix.substring(0, prefix.length() - 1);
  21.  
  22. // Если сократили до пустоты — общего префикса нет
  23. if (prefix.isEmpty()) return "";
  24. }
  25. }
  26. return prefix;
  27. }
  28. }
  29.  
Success #stdin #stdout 0.14s 57384KB
stdin
Standard input is empty
stdout
Наибольший общий префикс: пол