I got the right answer in IntelliJ, but failed last two requirements. Pls help.
package com.codegym.task.task22.task2209;
/*
Make a word chain
*/
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));
String fileName = br.readLine();
br.close();
br = new BufferedReader(new FileReader(fileName));
StringBuilder sb = new StringBuilder();
while(br.ready()){
sb.append(br.readLine());
}
br.close();
String[] words = sb.toString().split(" ");
StringBuilder result = getLine(words);
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
StringBuilder sb = new StringBuilder();
LinkedList<Character> first = new LinkedList<>();
LinkedList<Character> last = new LinkedList<>();
LinkedList<String> wl = new LinkedList<>();
ArrayList<String> remove = new ArrayList<>();
for (int i = 0; i < words.length; i++) {
String word = words[i];
first.add(word.toLowerCase().charAt(0));
last.add(word.toLowerCase().charAt(word.length()-1));
wl.add(word);
}
for (Character c : first) {
int index = first.indexOf(c);
if (!last.contains(c)) {
sb.append(wl.get(index));
remove.add(wl.get(index));
}
}
wl.removeAll(remove);
while (wl.size() > 0) {
for (String s : wl) {
if (s.toLowerCase().charAt(0) == sb.charAt(sb.length()-1)) {
sb.append(" ");
sb.append(s);
wl.remove(s);
}
}
}
return sb;
}
}