Решил задачу, читал кучу рекомендаций тех кто решил, лепил код по их советам, смотел готовые решения.
В итоге валидацию прошо...но понять не могу как программа работает.
Просьба детально разъяснить:
public class Solution {
private static List<String> strings = new ArrayList<String>();
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int num = 0;
int index = 0;
for (int i = 0; i < 5; i++) {
strings.add(sc.nextLine());
index = i;
if (strings.get(i).length() > num) {
num = strings.get(i).length();
}
}
for (int i = 0; i<5;i++){
if (strings.get(i).length() == num) {
System.out.println(strings.get(i));
}
}
}
}
Oleg
28 уровень
Объясните пожалуйста на пальцах решение!
Архивный
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Oleg
1 мая 2019, 09:35
Спасибо добрый человек!!!!
Только про стринги это не я...в задании так было...
0
Justinian Judge в Mega City One Master
30 апреля 2019, 20:10решение
1. Объявлен массив (хотя strings это струны, трусы, в данном случае это просто list/lines должен быть)
2. Создаем новый объект типа Сканер с параметром (System.in) - системная переменная которая даст нам доступ к информации, вводимой в консоли.
3. Итерируемся по массиву стринги, в данном случае будет пять итераций
(sc.nextLine() - мы запрашиваем и получаем строку с консоли.
strings.add - добавляем эту строку в массив стринги
4. Сразу после ввода проверяем длину строки.
Если она на ДАННЫЙ момент максимальная, то есть длина текущей строки больше чем num (переменная которая должна называться maxLength) , то мы обновляем текущий максимум.
5. А здесь мы итерируемся по массиву и ищем ВСЕ строки, чья длина равна максимально найденной. (
strings. массив стринги
get(i). получить элемент с индексом i
length() метод который возвращает длину
num - наша maxLength которая хранит максимальную длину строки, найденную раннее.
Если будет несколько строк, то выведутся на экран несколько.
+3