Вызов
Имея строку, описывающую правило резки, и другую строку, вырежьте части из второй строки, используя правило, описанное в первой строке.
Обе строки будут состоять из букв a-z
или A-Z
того, что вы выберете (они не должны быть представлены одинаково). Способ изменения второй строки описан ниже:
Алгоритм
Возьмите первую строку и представьте, что заполняете пробелы между несмежными (увеличивающимися) буквами =
; например, abcfg
=> abc==fg
. Затем выровняйте две строки и верните все символы из первой строки, которые не находятся выше знака равенства. Например, учитывая abcfg
и в qrstuvw
качестве входных данных:
qrstuvw - Modify
abc==fg - Modifier
qrs--vw -> qrsvw
Если модификатор короче после заполнения знаками равенства, все завершающие символы во второй строке должны быть включены. Если модификатор длиннее, завершающие символы игнорируются.
Модификатор не гарантированно будет отсортирован.
Тестовые случаи
abcfg, qrstuvw -> qrsvw
abqrs, qwertyuiopasdfghjklzxcvbnm -> qwjklzxcvbnm
za, qr -> qr
azazaz, qwertyuioplkjhgfdsazxcvbnmnbvcxzasdfghjklpoiuytrewq -> qmn
Реализация ссылок (используется для генерации тестовых случаев) -> TIO
правила
- Применяются стандартные лазейки
- Вы можете воспринимать ввод как две строки, два списка символов, матрицу символов и т. Д. (Любой другой приемлемый формат приемлем)
- Вы можете вывести в виде строки или списка символов (или некоторого другого стандартного формата для строк)
- Это код-гольф , поэтому самый короткий ответ в байтах на каждом языке объявляется победителем для своего языка. Ответ не будет принят.
- Любая строка может быть пустой.
Счастливого гольфа!
Вдохновленный двумя последними проблемами Кевина Круйссена, «Там я исправил это (с лентой / веревкой )»
There, I blew it up (with a segfault)