Advertisement
Guest User

Составить цепочку слов

a guest
Jul 15th, 2018
355
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.48 KB | None | 0 0
  1. package com.javarush.task.task22.task2209;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.FileReader;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. import java.util.ArrayList;
  8. import java.util.Arrays;
  9. import java.util.Collections;
  10. import java.util.Comparator;
  11.  
  12. /*
  13. Составить цепочку слов
  14. */
  15. public class Solution {
  16.  
  17.     public static void main(String[] args) throws IOException {
  18.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  19.         String fileName = reader.readLine();
  20.         reader.close();
  21.         BufferedReader fileReader = new BufferedReader(new FileReader(fileName));
  22.         String line = "";
  23.         while (fileReader.ready()) {
  24.             line += fileReader.readLine()+ " ";
  25.         }
  26.         fileReader.close();
  27.         StringBuilder result = getLine(line.split(" "));
  28.  
  29.         System.out.println(result.toString());
  30.     }
  31.  
  32.     public static StringBuilder getLine(String... words) {
  33.         if(words.length == 0) return new StringBuilder();
  34.         ArrayList<String> list = new ArrayList<>();
  35.         StringBuilder res = new StringBuilder();
  36.         list.addAll(Arrays.asList(words));
  37.         Collections.sort(list, new SortIgnoreCase());
  38.         res.append(list.get(0) + " ");
  39.         char first;
  40.         char end;
  41.         for(int j = 0;j < list.size();j++) {
  42.             for (int y = j+1; y < list.size(); y++) {
  43.                 end = list.get(j).charAt(list.get(j).length() - 1);
  44.                 first = list.get(y).charAt(0);
  45.                     if(String.valueOf(end).equalsIgnoreCase(String.valueOf(first))) {
  46.                         res.append(list.get(y) + " ");
  47.                         list.add(j+1,list.get(y));
  48.                         list.remove(list.get(y));
  49.                         break;
  50.                     } else {
  51.                         list.add(list.get(y));
  52.                         list.remove(list.get(y));
  53.                         if(y == list.size()-1) {
  54.                             res.append(list.get(list.size()-1));
  55.                             break;
  56.                         }
  57.                         y--;
  58.                     }
  59.             }
  60.         }
  61.         return res;
  62.     }
  63.     public static class SortIgnoreCase implements Comparator<Object> {
  64.         public int compare(Object o1, Object o2) {
  65.             String s1 = (String) o1;
  66.             String s2 = (String) o2;
  67.             return s1.toLowerCase().compareTo(s2.toLowerCase());
  68.         }
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement