Друзья!
Помогите, пожалуйста, не проходит по двум последним пунктам, хотя все делает правильно.
package com.javarush.task.task22.task2209;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.StringTokenizer;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader fileReader = new BufferedReader(new FileReader(reader.readLine()));
StringTokenizer stringTokenizer = new StringTokenizer(fileReader.readLine(), " ");
List<String> list1 = new ArrayList<>();
while (stringTokenizer.hasMoreTokens()) {
list1.add(stringTokenizer.nextToken());
}
String[] result1 = new String[list1.size()];
for (int i = 0; i < result1.length; i++) {
result1[i] = list1.get(i);
}
StringBuilder result = getLine(result1);
System.out.println(result);
}
public static StringBuilder getLine(String... words) {
StringBuilder stringBuilder = new StringBuilder();
List<String> words2 = new ArrayList<>(Arrays.asList(words));
List<String> result = new ArrayList<>();
for (int i = 0; i < words2.size();) {
String first = words2.get(i).toLowerCase();
if (result.size() >= words2.size()) {
break;
}
int index = 0;
for (int j = 0; j < words2.size(); j++) {
String second = words2.get(j).toLowerCase();
if (first.charAt(first.length() - 1) == second.charAt(0)) {
if (!result.contains(words2.get(i))) {
result.add(words2.get(i));
}
result.add(words2.get(j));
index = j;
break;
}
}
i = index;
}
for (int i = 0; i < result.size(); i++) {
stringBuilder.append(result.get(i));
if (i != result.size() - 1) {
stringBuilder.append(" ");
}
}
return stringBuilder;
}
}