Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.test.level22.lesson09.task03;
- import java.io.*;
- import java.util.ArrayList;
- import java.util.Collections;
- /* Составить цепочку слов
- В методе main считайте с консоли имя файла, который содержит слова, разделенные пробелом.
- В методе getLine используя StringBuilder расставить все слова в таком порядке,
- чтобы последняя буква данного слова совпадала с первой буквой следующего не учитывая регистр.
- Каждое слово должно участвовать 1 раз.
- Метод getLine должен возвращать любой вариант.
- Слова разделять пробелом.
- В файле не обязательно будет много слов.
- Пример тела входного файла:
- Киев Нью-Йорк Амстердам Вена Мельбурн
- Результат:
- Амстердам Мельбурн Нью-Йорк Киев Вена
- */
- public class Solution
- {
- public static void main(String[] args) throws IOException
- {
- //...
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- String file = reader.readLine();
- BufferedReader reader2 = new BufferedReader(new FileReader(file));
- String line;
- String words[] = new String[0];
- ArrayList<String> wordsList = new ArrayList<>();
- while ((line = reader2.readLine()) != null)
- {
- words = line.split(" ");
- Collections.addAll(wordsList, words);
- }
- StringBuilder result = getLine(words);
- System.out.println(result.toString());
- }
- public static StringBuilder getLine(String... words)
- {
- ArrayList<String> wordsList = new ArrayList<>();
- Collections.addAll(wordsList, words);
- StringBuilder sb = new StringBuilder();
- while (true)
- {
- Collections.shuffle(wordsList);
- boolean isThat = false;
- for (int i = 0; i < wordsList.size() - 1; i++)
- {
- String first = wordsList.get(i);
- String second = wordsList.get(i + 1);
- char symb1[] = first.toLowerCase().toCharArray();
- char symb2[] = second.toLowerCase().toCharArray();
- if (symb1[symb1.length - 1] == symb2[0])
- {
- isThat = true;
- }
- }
- if (isThat)
- {
- for (int i = 0; i < wordsList.size(); i++)
- {
- sb.append(wordsList.get(i));
- sb.append(" ");
- }
- break;
- }
- }
- return sb;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement