Не проходит по 6 и 7 пункту. Что не так?
package com.javarush.task.task22.task2209;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
// String fileName = "C:\\Users\\139\\YandexDisk\\JavaProjects\\JavaRushTasks\\3.JavaMultithreading\\src\\com\\javarush\\task\\task22\\task2209\\1";
String[] words;
try (Stream<String> input = Files.lines(Paths.get(fileName), StandardCharsets.UTF_8)) {
words = input
.flatMap(line -> Arrays.stream(line.split(" ")))
.toArray(String[]::new);
}
StringBuilder result = getLine(words);
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
List<StringBuilder> chains = new ArrayList<>();
List<String> wordsFixedList = Arrays.asList(words);
for (String word : words) {
List<String> wordsList = new ArrayList<>(wordsFixedList);
wordsList.remove(word);
StringBuilder result = new StringBuilder(getWord(word, wordsList));
result.insert(0, " ");
result.insert(0, word);
chains.add(result);
}
return chains.stream().filter(chain -> chain.toString().split(" ").length == words.length).findFirst().orElse(new StringBuilder());
}
public static String getWord(String word, List<String> wordsList) {
String result = "";
char charAtEnd = word.charAt(word.length() - 1);
for (String currentWord : wordsList) {
if (currentWord.toLowerCase().charAt(0) == charAtEnd) {
if (wordsList.size() > 1) {
result = currentWord + " " + getWord(currentWord, wordsList.stream().filter(w -> !w.equals(currentWord)).collect(Collectors.toList()));
} else {
result = currentWord;
}
}
}
return result;
}
}