Программа работала слишком долго и была закрыта!, но у меня все выводит, и завершается
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) throws Exception {
StringBuilder sb = new StringBuilder();
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader fileReader = new BufferedReader(new FileReader(reader.readLine()));
String string;
while((string = fileReader.readLine()) != null) {
sb.append(string.trim());
}
} catch (IOException e) {
e.printStackTrace();
}
StringBuilder result = getLine(sb.toString().trim().split(" "));
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
StringBuilder stringBuilder = new StringBuilder();
ArrayList<String> arrayList = new ArrayList<>();
for (String string : words) {
arrayList.add(string);
}
int index = 0;
for (int j = 0; j < arrayList.size(); j++) {
boolean b = false;
for (int i = 0; i < arrayList.size(); i++) {
b = (arrayList.get(j).substring(0, 1).equals(arrayList.get(i).substring(arrayList.get(i).length()-1))&&i!=j);
index = j;
if (b) break;
}
if (!b) break;
}
stringBuilder.append(arrayList.get(index));
ArrayList <String> arrayList1 = (ArrayList<String>) arrayList.clone();
for (int i = 0; 1 < arrayList.size();) {
for (int j = 0; j < arrayList1.size(); j++) {
String s = String.valueOf(stringBuilder);
String s1 = s.toUpperCase();
if (s.endsWith(String.valueOf(arrayList1.get(j).charAt(0)))||s1.endsWith(String.valueOf(arrayList1.get(j).charAt(0)))) {
stringBuilder.append(" ").append(arrayList1.get(j));
i = j;
arrayList.remove(i);
arrayList1.remove(j);
break;
}
}
}
// String s = String.valueOf(stringBuilder);
// String[] strings = s.split(" ");
// strings[strings.length-1] = "";
// stringBuilder = strings;
return stringBuilder;
}
}