Тяжело угодать что именно нужно сделать чтоб учловие прошло.
Как будто нужно делать как они хотят!
может кто подскажет ?
package com.javarush.task.task22.task2209;
import java.io.*;
import java.util.*;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws Exception {
List<String> words = new ArrayList<>();
BufferedReader bufferedReader = new BufferedReader(new FileReader(new BufferedReader(new InputStreamReader(System.in)).readLine()));
String s ;
while ((s = bufferedReader.readLine()) != null){
words.addAll(Arrays.asList(s.split(" ")));
}
bufferedReader.close();
String[] strings = new String[words.size()];
for (int i = 0; i < strings.length; i++) {
strings[i] = words.get(i);
}
StringBuilder result = getLine(strings);
System.out.println(result.toString());
}
public static StringBuilder getLine(String... wordList) {
List<Word> words = new ArrayList<>();
for (String s : wordList) {
words.add(new Word(s,String.valueOf(s.charAt(0)),String.valueOf(s.charAt(s.length()-1))));
}
StringBuilder stringBuilder = new StringBuilder();
int count = 0;
for (int i = 0; i < words.size(); i++) {
Word word1 = words.get(i);
for (int j = 0; j < words.size(); j++) {
Word word2 = words.get(j);
if(!(word1.name.equalsIgnoreCase(word2.name)) & word1.equals(word2)){
stringBuilder.append(word1.toString() + " ");
word1 = word2;
count ++;
if(count < words.size() - 1)j = -1;
else {
stringBuilder.append(word1);
count++;
break;
}
}
}
if(count != words.size()){
stringBuilder = new StringBuilder(" ");
count = 0;
}else break;
}
return stringBuilder;
}
public static class Word{
String name;
String startOF;
String endOF;
public Word(String name, String startOF, String endOF) {
this.name = name;
this.startOF = startOF;
this.endOF = endOF;
}
@Override
public int hashCode() {
return super.hashCode();
}
@Override
public boolean equals(Object obj) {
if(!(obj instanceof Word)) return false;
Word word = (Word) obj;
if (endOF == null) return false;
if(word.startOF == null) return false;
return endOF.equalsIgnoreCase(word.startOF) ;
}
@Override
public String toString() {
return name;
}
}
}