Прикрепил код, которым решил задачу. Валидатор пропустил. Но у меня вопрос: как можно решить задачу, не задавая переменным min и max конкретных значений? (в моем случае задано 100 и 0 соотв-но). Пробовал в мин и макс присваивать длину первой строки из массива, но тогда программа перестает работать в случае если максимальная/минимальная строка вводится самой первой. Может нужно прописать какое то доп. условие в цикле? Но какое? package com.javarush.task.task07.task0712; 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 { //напишите тут ваш код ArrayList<String> list = new ArrayList<String>(); BufferedReader s = new BufferedReader(new InputStreamReader(System.in)); for (int i=0; i<10; i++){ String str = s.readLine(); list.add(str); } int min = 100;//длина минимум int max = 0;//длина максимум String minimum="";//строка минимум String maximum="";//строка максимум int minNum=0;//порядковый номер минимум int maxNum=0;//порядковый номер максимум for (int i=0; i<list.size(); i++){ //выясняем минимум if (min>list.get(i).length()){ min = list.get(i).length(); minimum = list.get(i); minNum=i; } } for (int j=0; j<list.size(); j++){ //выясняем maximum if (max<list.get(j).length()){ max=list.get(j).length(); maximum = list.get(j); maxNum = j; } } if (minNum<maxNum) System.out.println(minimum); else System.out.println(maximum); } }