Проверка на упорядоченность

  • 4
  • Недоступна
Иерархия — первый страж порядка и боевое оружие диктатуры. О диктатуре подумаем позже, а пока составим список из 10 слов. Введём их с клавиатуры. Наша задача состоит в том, чтобы проверить, является ли список упорядоченным по возрастанию длины строки. Если нет, выводим на экран номер первого элемента, нарушающего такую упорядоченность.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (209)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
RomanBk7 уровень
позавчера, 16:20
Если выбивающаяся строка будет идентична элементу с индексом "0", то и выдает индекс "0", а не нужной строки, почему?
Anastas8 уровень, Гомель
позавчера, 14:12
Моя ошибка было в том, что сравнивала не второй элемент с первым, а первый со вторым...
Rita Ashkenazi8 уровень
14 апреля, 13:58
20 пыпоток, ююхуууу! xD
Иван Мозгачев9 уровень, Москва
13 апреля, 13:30
Что в Вашем понятии индекс? Индекс элемента в любых списках исчисляется от 0 до n... Поэтому в такой последовательности 1 11 111 11 1 1 1 1 1 1 Какой ответ должен быть? По сути - 3, но для валидатора - индекс это номер строки (1, 2 .. n) ...
PePTo9 уровень, Алматы
4 апреля, 06:21
Валидацию то прошла, выводит индекс числа на котором обламывается упорядоченное... но если вводим 123 12345 123456 ее ответ: 3 (ее) но... если ввожу 123 1234 12345 123 ответ: 0 вместо 3, берет первый элемет списка никак не могу победить что бы возвращал именно индекс строки которая меньше чем предыдущая если есть совподение по строкам( валидацию при этом прошел) Индекс ищу вот так System.out.println(list.indexOf(list.get(i + 1))); вот сам туплю)) просто нужно System.out.println(i + 1);
Андрей20 уровень
28 марта, 10:48
В описании действительно ошибка. В условии сказано вывести индекс элемента, нарушающего упорядоченность, так валидация не проходит. По факту проходит валидацию с указанием номера строки вместо индекса.
11 марта, 18:39
Задачка и впрямь оказалось примитивной) И условие написано правильно - нужно выводить именно ИНДЕКС строки. Все мои неудавшиеся попытки результат "замыленности глаз". Условие: "Если список не упорядочен по возрастанию длины строки" Я почему-то прочитав начал проверять список на упорядоченность по убыванию длины строки)) Видимо, потому что во Входных данных они уже изначально сортируются по убыванию) Ай да хитрецы))) Никаких максимальных длин вычислять не нужно. Заполнили список. Запомнили длину первой строки. Далее в цикле сравниваем, каждая новая строка должна быть длиннее (или равна длине) предыдущей.
Max Rabinovich19 уровень, Санкт-Петербург
15 марта, 12:26
Да, у словие правильное. Не понимаю, почему все возмущаются. У кого есть какие-то проблемы, то просто вводите первое число вне цикла, а потом уже вводите остальный 9 строк в цикле с 1.
Павел8 уровень, Новосибирск
10 марта, 16:39
Поправьте некорректное описание задачи - необходимо выводить номер строки а не ее индекс.
Rina14 уровень
13 марта, 07:41
Спасибо, после вашего комментария прошла валидацию. В задаче действительно некорректное условие, индексы элементов начинаются с 0, а при проверке требуется вывести порядковый номер строки. Администрация, поправтьте, пожалуйста.
Михаил10 уровень
21 марта, 05:53
мой код выводит именно ИНДЕКС и валидатор принял
Mike Woo24 уровень, Москва
9 марта, 17:24
Фактически задача проще заявленных условий: формально, весь список должен быть отсортирован по возрастанию. Следовательно, в ситуации:
собака (6 букв)
программа (9 букв)
бабушка (7 букв)
ошибочный индекс должен быть не у "бабушки" из-за того, что она короче "программы", а у "программы", так как она длиннее, чем элемент, который по возрастанию должен быть на её месте (6 или 7 букв, та же "бабушка", например), и проверять надо не только на уменьшение длины, но и на чрезмерное увеличение. Но этого не требуется )
Алексей15 уровень, Москва
9 марта, 12:28
System.out.println(list.indexOf(list.get(i)));
- валидация проходит, НО вместо индекса 4, выводится индекс элемента с таким же содержанием который идет ранее в ArrayList, в данном случае 0. Как это исправить? Дайте совет на будущее, плиз. ВВОД q qw qwe qwer q qweqwe qweqwe qweqwe qweqwe qweqwe ВЫВОД 0
Александр8 уровень
13 марта, 22:30
indexOf() выдаёт индекс первого совпадения. Вы выдаёте не то, что нужно по условию. Нужно перед циклом запомнить первую строку в переменную, потом в цикле убеждаться, что каждая последующая не меньше предыдущей. Если меньше, то выводим i и выходим из цикла.