может я не так понял условие задачи вроде все работает как нужно что не так в моем коде кто может помочь
package com.javarush.task.task22.task2209;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) {
//...
List<String> list = new ArrayList<>();
try(BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader bufferedReader = new BufferedReader(new FileReader(reader.readLine()))){
while (bufferedReader.ready()){
String[] s = bufferedReader.readLine().split(" ");
for (int i = 0; i < s.length; i++) {
list.add(s[i]);
}
}
} catch (IOException e) {
throw new RuntimeException(e);
}
StringBuilder result = getLine(list.toArray(new String[0]));
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
if (words == null || words.length == 0){
return new StringBuilder();
}
StringBuilder stringBuilder = new StringBuilder(words[0]);
stringBuilder.append(" ");
boolean[] isVisit = new boolean[words.length];
isVisit[0] = true;
for (int i = 0; i < words.length; i++) {
String s = stringBuilder.toString().trim();
char c = s.charAt(s.length() - 1);
for (int j = 0; j < words.length; j++) {
if (isVisit[j]){
continue;
}
char f = words[j].toLowerCase().charAt(0);
if (c == f){
stringBuilder.append(words[j]).append(" ");
isVisit[j] = true;
break;
}
}
}
for (int i = 0; i < isVisit.length; i++) {
if (!isVisit[i]){
stringBuilder.append(words[i]);
}
}
return stringBuilder;
}
}