Самая длинная строка

  • 4
  • Недоступна
Давайте померяемся строками! А заодно и задачку решим по программированию: создадим список строк, считаем с клавиатуры 5 штук и добавим их в список. Затем с помощью цикла найдем из списка самую длинную строку (или несколько, если она такая не одна). Страна должна знать своих героев: самые длинные строки будут выведены на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (252)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Denis8 уровень, Киев
8 апреля, 12:30
Подскажите для чего эта строка? int num = strings.get(0).length(); получаем аля нулевой индекс
LordGhoul10 уровень, Нижний Новгород
9 апреля, 06:36
Здесь выводится количество символов в строке в нулевой ячейке
Denis8 уровень, Киев
9 апреля, 07:07
Спасибо
Jose Rainbow9 уровень, Санкт-Петербург
7 апреля, 23:47
106 попыток. Среднее количество 4.8. Очень хорошо.
Никита20 уровень
30 марта, 12:43
Делаем всё по порядку: 1. Создали список строк, считали с клавиатуры данные
strings = new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 5; i++) {
  strings.add(br.readLine());
}
2. Нашли самую длинную строку в цикле
int num = strings.get(0).length();
  for (int i = 0; i < 5; i++) {
    if (strings.get(i).length() >= num) {
      num = strings.get(i).length();
    }
}
3. Вывод на экран
for (int i = 0; i < 5; i++) {
  if (strings.get(i).length() == num) System.out.println(strings.get(i));
}
12 апреля, 10:09
Сделано также но валидацию не проходит :) попробовал тоже самое на следующей задаче с минимум тож не пашет. Видимо какаято проблема в проверке на максимальность у меня
Павел14 уровень, Санкт-Петербург
23 марта, 21:59
http://prntscr.com/n20t0b
Nicolai Morari7 уровень
16 апреля, 19:03
идея хорошая, но не правильная, если длина последней строки в списке будет короче предыдущих. то вначале выведет их. Правильней вначале проверить весь список. а потом выводить.
Julia_Lemon8 уровень
22 марта, 03:34
Интересная задача! Начинаю решать вслух, советуясь сама с собой. Это нормально? )
Sergey Vladimirovich8 уровень, Москва
24 марта, 10:01
тож так делаю))
TTT13 уровень, Харьков
13 марта, 13:44
а я решил с минус первой попытки, обломитесь, умники. Каждый раз я буду на шаг впереди :D
Александр8 уровень
12 марта, 17:59
Соригинальничал. Первым циклом заполнил список строк strings, здесь же создал список их длин "iList" и запилил поиск максимальной длины maxLength. Потом второй цикл -- do-while. В нём получаю индекс строки с максимальной длиной iList.indexOf(maxLength), вывожу строку, потом обнуляю длину строки в массиве длин iList через iList.set(index, 0). Это чтобы дальше indexOf выдавал уже следующий индекс.
do {
    int index = iList.indexOf(maxLength);
    System.out.println(strings.get(index));
    iList.set(index, 0);
} while (iList.indexOf(maxLength) > -1);
С одной стороны, извращение, с другой -- попрактиковался в списках и их методах )) P.S. Когда значение в списке не найдено, indexOf() выдает -1.
Artembl49 уровень, Москва
10 марта, 19:16
6 попыток. Тремя циклами решил. Первым вводим пять строк. Во втором цикле добавляем две переменные МаксДлина и Индекс в списке, ищем максимальную строку, третий цикл прогоняет список и ищет строки равные максимальной.
Denis7 уровень
10 марта, 12:37
28 попыток - задача решена, 25 попыток были потрачены прежде чем Я вспомнил, чем метод set() отличается от add() будьте Внимательны!
Zhenya Ursol11 уровень, Киев
1 марта, 16:19
Сразу прочитав задание решил, что проще всего будет отсортировать ArrayList по длине строки, от меньшего к большему. Погуглив нашел хорошее решение для этого:
Collections.sort(strings, new Comparator<String>()
более подробно описано тут: https://javatalks.ru/topics/47090 После этого, циклом While сравнил перебором длину строки каждого элемента массива, с длинной строки последнего элемента. Соотвественно, выводил в консоль ту строку которая равна длине строки последнего элемента.
Kovis9 уровень, Санкт-Петербург
9 марта, 12:51
а зачем сортировать? достаточно на вводе проверять на "максимальность" длинны и менять максимум при необходимости. потом еще раз пройти по списку выводя только те, у которых длинна равна максимальной. так одновременно решается вопрос о выводе нескольких максимально длинных.
Vadim Safin9 уровень
19 марта, 10:29
Сделал так же, с помощью двух циклов. Пол часа ломал голову как сделать одним циклом, так и не придумал