public class Solution {
public static void main(String[] args) throws IOException {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader readerFile = new BufferedReader(new FileReader(reader.readLine()))) {
String[] words;
try {
words = readerFile.readLine().split(" ");
StringBuilder result = getLine(words);
System.out.println(result.toString());
} catch (NullPointerException e) {
StringBuilder result = new StringBuilder("");
}
}
}
public static StringBuilder getLine(String... words) {
ArrayList<String> list = new ArrayList<>();
String letter = "";
StringBuilder sb = new StringBuilder("");
for (int i = 0; i < words.length; i++) {
list.add(words[i]);
}
Collections.shuffle(list);
// Первая итерация
sb.append(list.get(0));
letter = list.get(0).substring(list.get(0).length() - 1);
list.remove(0);
for (int i = 0; i < list.size(); i++) {
String current = list.get(i);
for (int j = i; j < list.size(); j++) {
if (list.get(j).substring(0, 1).equalsIgnoreCase(letter)) {
sb.append(" " + list.get(j));
list.set(i, list.get(j));
letter = list.get(i).substring(list.get(i).length() - 1);
list.set(j, current);
}
}
}
return sb;
}
}
package com.javarush.task.task22.task2209;
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) throws IOException {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader readerFile = new BufferedReader(new FileReader(reader.readLine()))) {
String[] words;
try {
words = readerFile.readLine().split(" ");
StringBuilder result = getLine(words);
System.out.println(result.toString());
} catch (NullPointerException e) {
StringBuilder result = new StringBuilder("");
}
}
}
public static StringBuilder getLine(String... words) {
ArrayList<String> list = new ArrayList<>();
String letter = "";
StringBuilder sb = new StringBuilder("");
for (int i = 0; i < words.length; i++) {
list.add(words[i]);
}
Collections.shuffle(list);
// Первая итерация
sb.append(list.get(0));
letter = list.get(0).substring(list.get(0).length() - 1);
list.remove(0);
for (int i = 0; i < list.size(); i++) {
String current = list.get(i);
for (int j = i; j < list.size(); j++) {
if (list.get(j).substring(0, 1).equalsIgnoreCase(letter)) {
sb.append(" " + list.get(j));
list.set(i, list.get(j));
letter = list.get(i).substring(list.get(i).length() - 1);
list.set(j, current);
}
}
}
return sb;
}
}