Вдохновленный этим вызовом .
Цель:
Учитывая предварительно сконфигурированный коммутатор и список индексов, инвертируйте коммутаторы по указанным индексам.
Распределительный щит состоит из некоторого количества переключателей ( v
или ^
), завернутых в -
и размещенных в ряды различной длины. Вот пример коммутатора:
-v-^-v-
-^-v-
-v-^-v-
Инвертировать / перевернуть переключатель означает изменить его с v
на ^
или с ^
на v
.
Переключатели индексируются слева направо, сверху вниз. Например, в приведенном выше примере последний v
в первом ряду будет в позиции 3, а ^
в среднем ряду будет в 4 (с использованием 1-индексации).
Входные данные:
- Строка (или список строк), представляющая коммутатор. Это гарантированно соответствует регулярному выражению
((-[v^])+-)(\n(-[v^])+-)*
. - Возможно, пустой список чисел, представляющих индексы, может быть индексирован 0 или 1 (или произвольным числом, если хотите). Это переключатели, которые необходимо переключить.
Выход:
- Коммутатор той же формы, что и вход с указанными инвертированными переключателями. Любые неуказанные переключатели должны сохранять свое начальное состояние.
Правила:
- Входные данные всегда будут правильно отформатированы, и никакие заданные индексы не будут выходить за пределы.
- Список индексов будет отсортирован и не будет иметь дубликатов.
- Укажите в своем ответе, какой индекс вы используете, будь то 0, 1 или какой-то другой.
- Конечный пробел в порядке, пока вывод выглядит как ввод.
- Это код-гольф, поэтому выигрывает самый короткий код.
Примеры:
#Using 1-indexing
input: #Empty Case
[],
-v-^-v-
output:
-v-^-v-
input: #Single switch
[1],
-v-
output:
-^-
input: #Skip a line
[3,5],
-^-v-v-
-v-
-^-^-
output:
-^-v-^-
-v-
-v-^-
input: #Flip one in each line + number wrap
[3,4,6],
-^-v-v-
-v-
-^-^-
output:
-^-v-^-
-^-
-^-v-
input: #Flip 'em all
[1,2,3,4,5,6],
-^-v-v-
-v-
-^-^-
output:
-v-^-^-
-^-
-v-v-
>"-"
: поскольку входная строка гарантированно начинается с -
, вы можете проверить соответствие имени параметра / аргумента / переменной, которое вы используете для этого.