Задача не проходит валидацию по последнему пункту, хотя вывод полностью соответствует заданию. Подскажите пожалуйста, в чем ошибка.
package com.javarush.task.task22.task2209;
import java.util.*;
import java.io.*;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedReader file = new BufferedReader(new FileReader(br.readLine()));
br.close();
ArrayList<String> words = new ArrayList<String>();
String str;
while ((str = file.readLine()) != null) {
for (String word : str.split("\\s+")) {
if (!word.isEmpty()) words.add(word);
}
}
file.close();
String[] s = new String[words.size()];
for(int i = 0; i < words.size(); i++) {
s[i] = words.get(i);
}
//...
StringBuilder result = getLine(s);
System.out.println(result.toString());
}
public static StringBuilder getLine(String...words) {
if(words == null || words.length == 0) return new StringBuilder("");
if(!words[0].isEmpty() && words.length == 1) return new StringBuilder(words[0]);
ArrayList<String> list = new ArrayList<String>();
Collections.addAll(list, words);
Collections.sort(list);
for (int j=0 ; j < list.size() - 2;j++) {
for (int i = j+1; i < list.size(); i++) {
if (list.get(j).charAt(list.get(j).length()-1) == list.get(i).toLowerCase().charAt(0) ) {
String s = list.get(j+1);
list.set(j+1, list.get(i));
list.set(i, s);
break;
}
}
}
StringBuilder result = new StringBuilder();
for(String s : list) {
result.append(s).append(" ");
}
//result = result.deleteCharAt(result.length() - 1);
return result;
}
}