Самые-самые

  • 4
  • Недоступна
Игры со списками в Java очень популярны. А всё потому, что это просто и интересно. Присоединяйтесь! В этой задачке создаем список строк. Затем — добавляем в него 10 строчек с клавиатуры. Самое интересное — определяем, какая строка в списке встретится раньше: самая короткая или самая длинная. Если таких строк несколько, учитываем самые первые из них.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (177)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Mike Woo18 уровень, Москва
9 марта, 16:13
Достаточно одного цикла for, в котором производится одновременно и добавление строки в список, и вычисление позиции (!) самой длинной/короткой строки.
Viktor 12 уровень
12 марта, 01:03
увидел ваш коммент и пошел оптимизировать))
Demid9 уровень
12 марта, 04:41
"соптимизировал" 20 строк )) используя ваш путь . итого вся программа со всеми строками импорта и отдельными строками закрывающих фигурных скобок 30 строк
Mike Woo18 уровень, Москва
12 марта, 09:28
Отличный результат )
Александр7 уровень
12 марта, 21:35
Оптимизировал по этому способу, но первый вариант, хоть и содержит два цикла, для постороннего программиста читается легче. У каждого подхода свои преимущества.
Александр8 уровень, Москва
28 февраля, 14:38
Будьте осторожны с >= и <= (если используете)
Владлен11 уровень, Санкт-Петербург
1 марта, 13:59
Спасибо) Голову сломал, почему программа работает корректно, но валидацию при этом не проходит...
Ильнур8 уровень, Казань
22 февраля, 21:05
1. Создаем числовую переменную и через цикл for находим самую маленькую по длине символов строку:
int переменная= 999;
            for (int i = 0; i < массив.size(); i++) {
            if (переменная > массив.get(i).length()) {
            переменная = массив.get(i).length();
            }
2. Создаем вторую числовую переменную и через цикл for находим самую большую по длине символов строку тем же способом, но наоборот. 3.1 Создаем цикл for с условием if что если длина нашего массива равна переменной минимума:
if (массив.get(i).length()==переменная)
то выводим строку массива:
(массив.get(i))
Так как, нам нужна только одна строка, добавляем тут же:
break;
3.2 Создаем аналогичный цикл, с переменной максимума.
V1tek028 уровень
23 февраля, 18:22
3.1 и 3.2 наверное нужно объединить, сравнение с максимум по "или"
katfald14 уровень, Киев
20 февраля, 15:09
Решила с помощью 2 переменных макс и мин, а потом циклом сравнения "или" с оператором прерывания
Roman Afonin16 уровень, Санкт-Петербург
28 февраля, 18:59
аналогично. Только забыл в скобки загнать break )))
Makar17811 уровень
17 февраля, 14:04
Подскажите пожалуйста, как вытащить / получить индекс элемента списка, которому присвоилось значение min или max?
RustiG9 уровень, Санкт-Петербург
20 февраля, 12:59
int index = list.indexOf("слово")
Mark13 уровень
6 февраля, 15:20
две переменные в которые вложил макс и мин, а главное цикл while, который и нашел какая из строк появилась первой и прекратил на этом работу, хорошая задача!!!
Руслан9 уровень, Санкт-Петербург
2 февраля, 11:07
По входным данным вижу, что программа должна выводить на экран самую длинную строку, так как она идет раньше самой короткой. Но моя программа прошла валидацию выведя короткую строку "сын". Или так и должно быть?
Evgeny Pashko13 уровень, Минск
2 февраля, 11:28
Самая длинная строка "программа" - последняя строка
Алексей8 уровень, Санкт-Петербург
18 февраля, 12:59
предпоследняя
VK19 уровень, Киев
2 февраля, 01:07
Очень приятное чувство сделать самому без гугления и тд и тп и исправить свою ошибку немного подумав смотря в потолок. Шел через кучу переменных. Вообщем небольшую подсказку закину если вдруг кто то моим не самым простым путем пойдет и застрянет в самом конце ---> -1
Алексей14 уровень, Москва
30 января, 20:43
Запоминание индексов не нужно, можно обойтись 2 переменными для хранения макс. и мин. длин строк.
11 января, 12:51
Валидатор не пропустил из-за обратного порядка выполнения условий 4 и 3