vladimankkulov

com.javarush.task.task22.task22091

Feb 8th, 2021
527
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.61 KB | None | 0 0
  1. package com.javarush.task.task22.task2209;
  2.  
  3. import java.io.*;
  4. import java.util.*;
  5.  
  6. /*
  7. Составить цепочку слов
  8. */
  9.  
  10. public class Solution {
  11.     public static void main(String[] args) throws IOException {
  12.        /*BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  13.         BufferedReader fr = new BufferedReader(new FileReader(reader.readLine()));
  14.         String txt;
  15.         String stroka="";
  16.         while ((txt=fr.readLine())!=null){
  17.             stroka+=txt+" ";
  18.         }
  19.         reader.close();
  20.         fr.close();
  21.         StringBuilder result = getLine(stroka);
  22.         System.out.println(result.toString());*/
  23.         System.out.println(getLine("alpha elephant kick linea android eels kill sum eye spud drink even bee dad num tea test sims apple mob mate"));
  24.         System.out.println(getLine("Абинск Кабул Киров Ватикан Называевск"));
  25.         System.out.println(getLine("АГ ЖЖ ДБ ЕЕ АБ ЖЕ БВ ГД ДЕ ЕЖ ЖГ ГЖ ЕЕ ЕД ВА"));
  26.         System.out.println(getLine("bee elephant num apple mob eels elain tea sum mate"));
  27.         System.out.println(getLine("sum eels mate num bee mob even eye"));
  28.         System.out.println(getLine("mate bee dad android sum drink kill elephant linea apple tea even num eels mob"));
  29.         System.out.println(getLine("Кабул Абинск Киров Ватикан Называевск"));
  30.     }
  31.  
  32.     public static StringBuilder getLine(String... words) {
  33.         StringBuilder builder = new StringBuilder();
  34.         if (words == null || words.length == 0) {return builder;}
  35.         String[] a = Arrays.asList(words).get(0).split(" ");
  36.         ArrayList<String> stringArrayList = new ArrayList<>();
  37.         for (int i = 0; i < a.length; i++) {
  38.             stringArrayList.add(a[i]);
  39.         }
  40.         if (a.length==1 || words[0].equals("")) {return builder.append(words[0]);}
  41.         List<String> list = new ArrayList<>();
  42.  
  43.         builder.append(stringArrayList.get(0));
  44.         stringArrayList.remove(0);
  45.         int countWhile = 0;
  46.         while (stringArrayList.size()>1){
  47.             while (true) {
  48.                 if (countWhile==stringArrayList.size()){
  49.                     countWhile = 0;
  50.                     break;
  51.                 }
  52.                 char last = builder.toString().toLowerCase().charAt(builder.length()-1);
  53.                 char first = stringArrayList.get(countWhile).toLowerCase().charAt(0);
  54.                 if (last == first){
  55.                     builder.append(" "+stringArrayList.get(countWhile));
  56.                     stringArrayList.remove(countWhile);
  57.                     countWhile=0;
  58.                 }else countWhile++;
  59.             }
  60.             while (true)
  61.             {
  62.                 if (countWhile == stringArrayList.size()){
  63.                     countWhile= 0 ;
  64.                     break;
  65.                 }
  66.                 char last = stringArrayList.get(countWhile).toLowerCase().charAt(stringArrayList.get(countWhile).length()-1);
  67.                 char first = builder.toString().toLowerCase().charAt(0);
  68.                 if (last == first){
  69.                     builder.insert(0,stringArrayList.get(countWhile)+" ");
  70.                     stringArrayList.remove(countWhile);
  71.                     countWhile = 0;
  72.                 }else countWhile++;
  73.             }
  74.             list.add(0,builder.substring(builder.lastIndexOf(" ")));
  75.             builder.delete(builder.lastIndexOf(" "), builder.length());
  76.         }
  77.         for (int i = 0; i <list.size() ; i++) {
  78.             builder.append(list.get(i));
  79.         }
  80.         return builder;
  81.     }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment