Спасибо, что уделяете время для этого вопроса!
Задача решена, но мне не дает покоя один вопрос. Если в начале программы не проинициализировать переменные:
int firstMax = 0;
int firstMin = 0;
и сделать так:
int firstMax;
int firstMin;
то программа не скомпелируется. Почему? Ведь, как я думаю, эти переменные инициализируются в этом блоке кода:
for (int i = 9; i >= 0; i--) { //Цикл для выявления индексов самой длинной и самой короткой строки
if (max == list.get(i).length()) //из списка строк;
firstMax = i;
if (min == list.get(i).length())
firstMin = i;
А вот и вся программа для наглядности:
public class Solution {
public static void main(String[] args) throws IOException {
//напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<String>();
int firstMax = 0; //Инициализируем переменные в которых будут храниться индекс списка
int firstMin = 0; //самой длинной и самой короткой строк;
for (int i = 0; i < 10; i++) //Заполняем список строк;
list.add(reader.readLine());
int max = list.get(0).length(); //Инициализируем переменные в которых будут храниться длины самой
int min = list.get(0).length(); //длинной и самой короткой строк;
for (String i: list) {
if (i.length() > max) //Цикл для выявления длины самой длинной и самой короткой строк;
max = i.length();
if (i.length() < min)
min = i.length();
}
for (int i = 9; i >= 0; i--) { //Цикл для выявления индексов самой длинной и самой короткой строки
if (max == list.get(i).length()) //из списка строк;
firstMax = i;
if (min == list.get(i).length())
firstMin = i;
}
System.out.println(firstMax > firstMin ? list.get(firstMin) : list.get(firstMax)); //Сравнение и вывод;
}
}
Спасибо!