Р или Л

  • 13
  • Недоступна
1. Создай список слов, заполни его самостоятельно. 2. Метод fix должен: 2.1. удалять из списка строк все слова, содержащие букву "р" 2.2. удваивать все слова содержащие букву "л". 2.3. если слово содержит и букву "р" и букву "л", то оставить это слово без изменений. 2.4. с другими словами ничего не
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (15)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
15 октября, 18:43
А я с исходным массивом ничего не делала, потому что меня смутило, что тип возвращаемого значения не void, а такой же массив. Ведь если бы мы меняли исходный массив, то можно было бы ничего не возвращать, массив передается по ссылке. Однако, похоже, это не поверяется, потому что здесь решают и так и так.
nikinou
Уровень 25
2 сентября, 11:10
Интересно! чтобы пропустить добавление неугодного слова в новый список, достаточно было в его if-е не указывать никакого действия с ним🤓😁
Grock
Уровень 25
18 августа, 12:58
Получилось: лоза, лира, лоза. Компилятор принял. Поэтому порядок вывода слов не имеет значения. Помните, что при добавлении нового элемента нужно учесть этот момент в цикле, иначе такой цикл станет бесконечным. Также при удалении элемента из списочного массива нужно понимать, что после такого удаления место удаленного элемента занимает следующий за удаленным элемент. Это также нужно учесть в цикле. У меня получилось решить двумя способами: 1. Создание доп. списочного массива+одного цикла for и уже в нем реализация условий задачи с помощью двух if и if else. 2. То же самое без создания доп. списочного массива. Но в цикле использовал доп. инкремент и декремент.
Евгения
Уровень 12
18 января, 16:47
Долго тупила, почему у меня получается результат: лоза, лоза, лира. В условии же надо: лира, лоза, лоза. Потом увидела, что последовательность слов в условии задачи (роза, лира, лоза) и в классе Solution (роза, лоза, лира) не совпадают. Кстати, валидатор принимает результат: лоза, лоза, лира, более того - у него результат такой же. Может, кому-нибудь инфа будет полезной)
EvGenbl4
Уровень 14
30 января, 18:26
я из за этого тоже понять ничего не мог, пришлось всю программу дебажить
Benjam1nBTN
Уровень 20
28 августа, 18:23
у меня валидатор не принял такое решение - выбрал "правильное" решение, прошел проверку и забыл... в очередной раз...
Роман
Уровень 23
10 октября, 21:04
такая же штука... 100500 вариантов проверил, все верно у меня, все учтено, однако валидатор говорит НОУЧЕНС..
Aleksei Reinsalu
Уровень 19
11 ноября 2021, 16:53
Задайте себе вопрос чему нас тут хотят научить. Моя версия - нас хотят научить более глубоко понимать перебор списка с изменяющейся на ходу длиной циклом for. В такой ситуации в каждом цикле надо делать не просто i++ в конце цикла , а вместо этого i = i + 1 + a - b где а - количество добавленных в этом цикле элементов b - количество удаленных в этом цикле элементов например в случае a ==0 && b ==1 мы должны оставить i как оно есть. Общее правило, как я понял, в конце каждого цикла мы должны быть на единицу ближе к концу списка. То есть если список сам уменьшился на единицу счетчик менять не надо. Если список увеличился на единицу, делаем в конце цикла i += 2
Павел К
Уровень 30
16 ноября 2021, 12:12
Я понял так: удаляешь элемент - возвращаешься назад (i--), добавляешь элемент - скачешь вперед (i++). В шапке ничего не правил.
Aleksei Reinsalu
Уровень 19
17 ноября 2021, 02:05
В правильном ответе можно найти еще и красивейший цикл и напоминание о методах работы со строками. Правда, там им нужен вспомогательный список, но все равно здорово сделано.
otreyo
Уровень 38
20 января, 13:29
в их решении нет ничего подобного. никаких доп коэффицентов
Александр Работает в ООО ПромСИЗ
23 августа 2021, 12:34
Насколько я понял с помощью Iterator можно только безопасно удалять элементы массива, а добавлять нельзя?
Anonymous #2589450
Уровень 22
26 апреля 2021, 19:26
Для валидатора важна так же правильная последовательность. Поэтому для тех кто решает - сразу создаете новый лист result и по проверке строка.contains("символ") добавляете два раза, добавляете один раз или не добавляете строку вообще в новй лист.
Anonymous #2527749
Уровень 28
13 сентября 2021, 16:36
Можно решать методами, которые могут проверить наличие символа (строки) в строке
PERFORATTOR
Уровень 19
24 ноября 2021, 21:01
Гениально!