Учитель diego

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

  • 5
  • Недоступна
Иерархия — первый страж порядка и боевое оружие диктатуры. О диктатуре подумаем позже, а пока составим список из 10 слов. Введём их с клавиатуры. Наша задача состоит в том, чтобы проверить, является ли список упорядоченным по возрастанию длины строки. Если нет, выводим на экран номер первого элемента, нарушающего такую упорядоченность.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (258)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Sam Fisher7 уровень, Москва
пятница, 06:20
Правильный ответ 2, верно? Но ведь под вторым индексом у нас слово папа. А первое слово нарушающее возрастание строки это бабушка (индекс 1) так как длины слов дедушка и бабушка равны. Ведь если не идёт возрастание это же тоже нарушение или нет? Если это не нарушение то об этом надо сказать.
Денис7 уровень
суббота, 09:04
Возрастающие списки разные есть. Может он растет через шаг, например 1122334455 Да даже если будет 122345 - кто скажет, что это не возрастающий список?
Евгений Буш8 уровень, Санкт-Петербург
вчера, 10:11
правильный ответ = 1
Андрей Середа9 уровень, Киев
19 августа, 07:27
Кто обьясниит почему правильной вывод "2" если индекс первого элемента, нарушающего упорядоченность "0"?
Egor9 уровень, Санкт-Петербург
27 августа, 13:38
При этих входных данных, первый элемент нарушащий очередность это "папа" - его индекс 2. 0 элемент никак не может быть нарушающим, чтобы это установить, нужно сравнить его (0) с предыдущем, а его не существует.
Андрей Середа9 уровень, Киев
28 августа, 06:14
Спасибо, я просто не правильно понял условие задания
das318 уровень
17 августа, 18:40
Что-то я не понял. Задача прошла тестирование, но на выводе 2, хотя должно быть 5, верно? Воспользовался алгоритмом Venitarx, вроде бы правильный
Андрей Вайно12 уровень
четверг, 15:39
Если список упорядочен по возрастанию длины строки, то ничего выводить не нужно.
Илья Джерихов9 уровень, Москва
12 августа, 07:46
ОШИБКА В УСЛОВИИ. не индекс а порядковый номер надо вывести!!!!
Анна Неумоина22 уровень, Санкт-Петербург
12 августа, 14:02
В условии правильно сказано: индекс у списков начинается с 0, а порядковый номер начинается с 1
Илья Джерихов9 уровень, Москва
13 августа, 04:22
ВЫВЕСТИ ИНДЕКС НАПИСАННО В УСЛОВИИ - это приводит к ошибке. (во всяком случае я к i прибавил 1 и все прошло), а то что разница между порядковым номером и индексом 1 это и так понятно.... продублирую: 3. В случае отрицательного ответа вывести на экран индекс(порядковый номер- надо) первого элемента, нарушающего такую упорядоченность. Если я не прав, то поправте более наглядно, Аня, а то вторая часть потверждает мой коментарий и в то же время вы не согласны...не понимаю....
IceBerg37 уровень, Кривой Рог
15 августа, 09:05
Как у вас выглядит проверочное условие?
Илья Джерихов9 уровень, Москва
15 августа, 09:12
если я правильно понял то: for (int i = 0; i < 10; i++)
IceBerg37 уровень, Кривой Рог
15 августа, 09:16
Нет, условие где проверяется нарушение упорядоченности.
IceBerg37 уровень, Кривой Рог
15 августа, 09:43
Воу, так это неверное решение, с чего это каждая следующая строка должна быть больше ровно на один символ? А если она будет на 10 длиннее, или равна предыдущей, это разве нарушает последовательность? Здесь какие-то бока с тестами, наверное их слишком мало для такой задачи, если проскакивают такие решение, но если делать по канону, то выводишь ИНДЕКС, и всё проходит.
Илья Джерихов9 уровень, Москва
15 августа, 09:52
ну да верно.... согласен, но почему не прошел индекс не понятно...
Артем Сычев8 уровень
8 августа, 13:32
9 попыток. ужас. в общем проверяйте весь массив = ) Я же изначально просто проверил все ли элементы, больше первого.
Venitarx15 уровень, Москва
7 августа, 14:57
Задача проще чем кажется: 0.Добавляем 10 строк в массив; 1.Вводим переменную min=0; 2.Перебираем массив; 3.Если длина строки больше min, то присваиваем min длину строки, если нет, то сразу выводим на печать индекс i и прерываем цикл; 4.PROFIT;
Алексей Б10 уровень, Брест
1 сентября, 18:40
Зачем вводить дополнительную переменную? if (list.get(i).length() <= list.get(i - 1).length()) { System.out.println(i); break;
нежный22 уровень, Одесса
6 августа, 15:36
когда вот взял и поставил личный рекорд! 😭
Людмила11 уровень
31 июля, 14:23
абсолютно не согласна с результатами решения этой задачи, которое в итоге получило статус РЕШЕН с выводом строки=9 при данных дедушка бабушка папа мама сын дочь коты собака программа машина Пришлось просматривать весь список до конца, а не заканчивать цикл при первом найденном нарушении. И в итоге вывелось последнее, а не первое. Может я чего-то не поняла?
ДМИТРИЙ11 уровень, Белгород
30 июля, 11:29
Никого не слушаем про условия. Здесь все правильно. 10 попыток, а все по причине сравнивания с несуществующим i+1 элементом. Начитался комментов и гонял себя по кругу, пока опять не переписал код, и не понял свою ошибку. ВОТ!!!
Maxim Volkov15 уровень, Таллинн
23 июля, 13:39
Если сравниваете i с i+1, смотрите сколько всего у вас i в цикле, последнее i сравнивать не с чем. Просто сломайте цикл на этом месте.