Всем доброго дня!
Столкнулся с такой ситуацией, что при использовании слов из примера всё работает нормально, вывод как нужно, но валидатор не принимает по последнему условию.
Если добавить какие-нибудь города, вывод иногда срабатывает неправильно. Очень нуждаюсь в совете, как можно улучшить этот код, и можно ли его вообще использовать для решения данной задачи? Правильный ответ так ужаснул своим объёмом, что я решил как-то дособирать то что есть.
Заранее спасибо!
package com.javarush.task.task22.task2209;
import java.io.*;
import java.util.*;
import java.util.stream.Collectors;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(new Scanner(System.in).nextLine()));
String str = "";
while (reader.ready()) {
str += reader.readLine();
}
StringBuilder result = getLine(str.split(" "));
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
if (words == null || words.length == 0) return new StringBuilder();
List<String> list = new ArrayList<>(Arrays.asList(words));
StringBuilder sb = new StringBuilder(list.stream()
.sorted((x,y) -> String.valueOf(x.charAt(x.length()-1)).equalsIgnoreCase(String.valueOf(y.charAt(0))) ? -1 : 1)
.collect(Collectors.joining(" ")));
return sb;
}
}