Вивід такий: "Киев Вена Амстердам Мельбурн Нью-Йорк Париж Венгрия" але валідатор не приймає....
package com.javarush.task.task22.task2209;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
import java.util.*;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader rf = new BufferedReader(new FileReader(reader.readLine()));
reader.close();
String str = "";
while (rf.ready()){
str = rf.readLine();
}
rf.close();
String[]words = str.split(" ");
StringBuilder result = getLine(words);
System.out.println(result.toString().replaceAll("\uFEFF",""));
}
public static StringBuilder getLine(String... words) {
if (words == null || words.length == 0) {
return new StringBuilder();
}
StringBuilder s = new StringBuilder();
List<String> list = new ArrayList<>(Arrays.asList(words));
s.append(list.get(0)+" ");
list.remove(0);
while (list.size() != 0){
for (int i = 0; i < list.size();i++){
if(list.get(i).toLowerCase().charAt(0) == s.charAt(s.length()-2)){
if(!s.toString().contains(list.get(i))) {
if(list.size() == 1){s.append(list.get(i));} else{
s.append(list.get(i) + " ");}
}
list.remove(i);
break;
}
if(list.get(i).toLowerCase().charAt(0) != s.charAt(s.length()-2) && i == list.size() - 1){
for (int p = 0; p < list.size();p++){
if(p == list.size() - 1){s.append(list.get(p));
} else{
s.append(list.get(p) + " ");
}
}
list.removeAll(list);
}
}
}
return s;
}
}