Добрый день!
Чувствую, что близок к решению, но уже крыша едет, хех.
Подскажите, пожалуйста, что нет так.
Ну то есть я как рассуждаю:
Если при выводе мы явно пропишем, что выводим четную строку 2 раза (S + S), а нечетную 3 раза (S + S + S) - точно будет ошибка, так как нужно вывести значение из листа, которое ровно 2 и 3 повторения соответственно.
Я так и сделал. На момент записи, по индексу листа я добавляю значение, которое удваиваю и утраиваю по условию. То есть, в списке с четными значениями, в index, например, 0 - у меня лежит готовое значение, которое я единожды вывожу на экран. Вывод работает правильно... В чем косяк и что я не учел?? Заранее спасибо
package com.javarush.task.task07.task0727;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> strings = new ArrayList<String>();
ArrayList<String> stringsEven = new ArrayList<String>();
ArrayList<String> stringsOdd = new ArrayList<String>();
while (true) {
String string = reader.readLine();
if (string == null || string.isEmpty()) break;
strings.add(string);
}
for (int i = 0; i < strings.size(); i++) {
if (strings.get(i).length() % 2 == 0) {
stringsEven.add(strings.get(i) + " " + strings.get(i));
}
else {
stringsOdd.add(strings.get(i) + " " + strings.get(i) + " " + strings.get(i));
}
}
for (int i = 0; i < stringsEven.size(); i++) {
System.out.println(stringsEven.get(i));
}
for (int i = 0; i < stringsOdd.size(); i++) {
System.out.println(stringsOdd.get(i));
}
}
}