Конвейер именованных шагов над списком
Задача по программированию с проверкой онлайн
- Сложность
- Средняя
- Языки
- Python
- JavaScript
- TypeScript
- Java
- Go
- Темы
- Функции и замыкания
- Массивы и списки
Дан конвейер: список строк steps — имена шагов, которые применяются по очереди к списку целых values; результат каждого шага — вход следующего. Верните итоговый список. Пустой конвейер возвращает список без изменений.
Шаг записывается как имя или имя:k, где k — целое (может быть отрицательным):
add:k,mul:k— прибавитьk/ умножить наkкаждый элемент;square,neg— возвести в квадрат / сменить знак у каждого элемента;keep_even,keep_odd— оставить чётные / нечётные (порядок сохраняется);keep_gt:k,keep_lt:k— оставить элементы строго больше / строго меньшеk;dedupe— убрать повторы, оставив первое вхождение каждого значения;sort— по возрастанию;reverse— развернуть;take:k— оставить первыеkэлементов (или все, если их меньше);drop:k— отбросить первыеk(или все).
В тестах k для take и drop не отрицательно, все имена известны. Значения помещаются в 32 бита.
Пример: ["add:1", "keep_even", "square"], [1, 2, 3, 4] → [4, 16] (после add:1: [2, 3, 4, 5], после keep_even: [2, 4]).
Источник: задача CodeShare
Решить онлайнБесплатно и без регистрации: пишете код в браузере и проверяете его тестами (без аккаунта — несколько задач в день).