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 {
//напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList <String> arrays = new ArrayList<>();
for (int i = 0; i < 10; i++) {
arrays.add(reader.readLine());
}
int min = arrays.get(0).length();
int max = arrays.get(0).length();
for (int i = 0; i < 10; i++) {
if(arrays.get(i).length() < min){
min = arrays.get(i).length();
}
else if(arrays.get(i).length() > max){
max = arrays.get(i).length();
}
}
// знаю что нужно делать так, но когда начинаю расписывать на листке то начинаю троить.
for (String x: arrays) {
if(x.length() <= min){
System.out.println(x);
break;
}
else if(x.length() >= max){
System.out.println(x);
break;
}
}
}
}
Дмитрий
9 уровень
Решил, да ещё и быстро но при этом не совсем понимаю принципы работы данного кода, точнее понимаю и одновременно не совсем понимаю. Есть такие специалисты которые смогли бы расписать каждое действие? Буду очень Вам благодарен.
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Дмитрий
14 января 2020, 14:16
понял. спасибо.
0
Bonus
14 января 2020, 13:52
Объявляешь переменные min, max. Присваиваешь им длину нулевой строки массива.
Запускаешь цикл. Цикл берет каждую строку и сравнивает с переменной min и max.
Если длинна строки(i) меньше min, переменной min присваивается новое значение - длина этой строки, Так поочередно сравнивая все строки находится самая короткая строка.
Если длинна строки(i) больше max, переменной max присваивается новое значение - длина этой строки, Так поочередно сравнивая все строки находится самая длинная строка.
Теперь есть две переменные со значением самой длинной и самой короткой строки в массиве (max, min)
Теперь ищем какая строка в массиве встретиться раньше самая длинная или самая короткая - сравниваем каждый элемент массива с переменной max и min (кстати в условии правильнее было бы написать не x.length() <= min, а x.length() == min, так как строки меньше min в массиве нет. ), после того как строка найдена она выводиться на печать и цикл останавливается
+3
София
14 января 2020, 14:05
Спасибо! Скажи, а что означает for (String x: arrays){}
0
Bonus
14 января 2020, 14:08
Это разновидность цикла for. Цикл for each. Подробней тут https://javarush.com/groups/posts/for-each-java
+1