JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Ребят, то не так? Помогите, пож, решить задачу этого прок...
Anastasia Kunitsyna
18 уровень
  • 25.09.2018
  • 1289просмотров
  • 10комментариев

Ребят, то не так? Помогите, пож, решить задачу этого проклятого 7го уровня)) вообще перестал выводить...

Вопрос по задаче Самые-самые
Java Syntax,  7 уровень,  6 лекция
Решен

1. Создай список строк.
2. Добавь в него 10 строчек с клавиатуры.
3. Узнай, какая строка в списке встретится раньше: самая короткая или самая длинная.
Если таких строк несколько, то должны быть учтены самые первые из них.
4. Выведи на экран строку из п.3. Должна быть выведена одна строка.

Требования:
  • Объяви переменную типа список строк и сразу проинициализируй ee.
  • Программа должна считывать 10 строк с клавиатуры и добавлять их в список.
  • Программа должна выводить на экран самую короткую строку, если она была раньше самой длинной.
  • Программа должна выводить на экран самую длинную строку, если она была раньше самой короткой.
  • Должна быть выведена только одна строка.
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 Exception { //напишите тут ваш код BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); ArrayList<String>list = new ArrayList<String>(); for (int i = 0; i < 10; i++){ String s = reader.readLine(); list.add(s); } int maxL = list.get(0).length(); int minL = list.get(0).length(); for (int a = 0; a < list.size(); a++){ if (maxL < list.get(a).length()){ maxL = list.get(a).length(); } } for (int b = 0; b < list.size(); b++){ if (minL > list.get(b).length()){ minL = list.get(b).length(); } } for (String string : list) { if (string.equals(maxL)||string.equals(minL)){ System.out.println(string); break; } } } }
0
Комментарии (10)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Alexey Maleev Software Developer
26 сентября 2018, 07:03
Можно сделать проще : BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); ArrayList<String> strings = new ArrayList<String>(); int i_min = 0; int i_max = 0; for(int i=0; i<10; i++) { strings.add(reader.readLine()); if (i == 0) continue; if (strings.get(i).length() > strings.get(i_max).length()) i_max = i; else if (strings.get(i).length() < strings.get(i_min).length()) i_min = i; } int idx = (i_min < i_max)? i_min : i_max; System.out.println(strings.get(idx));
+8
Anastasia Kunitsyna
Уровень 18
26 сентября 2018, 09:46
Да, так побыстрее. Но рука уже на if набита. Пока что сложновато припоминается краткая запись. Спасибо, что обратили мое внимание.
0
Anastasia Kunitsyna
Уровень 18
26 сентября 2018, 09:47
*в смысле if в цикле, короче, Вы поняли :-)
0
WantToSleep
Уровень 25
26 августа 2019, 15:35
можно еще проще :
int idx = Math.min(i_min, i_max);
+2
Евгений Java Developer Expert
25 сентября 2018, 13:50
Не пойму последний цикл string.equals(maxL)||string.equals(minL) maxL и minL - это длины строк.
0
Anastasia Kunitsyna
Уровень 18
25 сентября 2018, 14:09
ага, ну вроде как, если встретил длину maxL или minL (они рассчитаны ранее), выводи и завершайся) Так было задумано) Но что-то явно пошло не так)
0
Евгений Java Developer Expert
25 сентября 2018, 14:11
а чего у нас делает string.equals ? )
+1
Евгений Java Developer Expert
25 сентября 2018, 14:16
на так , ещё подсказка. string = "Вася", maxL = 4 Спрашиваем у программы "Вася" == "4" ?
+1
Anastasia Kunitsyna
Уровень 18
25 сентября 2018, 14:17
Переписала немного и прошла валидацию) Пока думала, что отвечать, пришел в голову ответ :-) for (int i = 0; i < list.size(); i++) { if (list.get(i).length() == (maxL) || list.get(i).length() == (minL)) { System.out.println(list.get(i)); break;
0
Anastasia Kunitsyna
Уровень 18
25 сентября 2018, 14:18
спасибо!
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush