В Dyalog APL Extended от @ Adám⍢
оператор (under) означает сопряжение: примените одну функцию, затем вторую функцию, а затем инверсию первой. Интересно думать о реальных действиях с точки зрения сопряжения:
Задача преобразуется g в другой домен, где она более легко решается с помощью f, а затем снова превращается в исходный домен. Пример из реальной жизни «под наркозом»:
apply anesthetics perform surgery wake up from anesthetics
Вызов
Обратной линии перед g
"un" ставится префикс g
, и наоборот. Определите любую линию между s
и ее обратной, в этом порядке, как «под» s
. Для каждой строки f
ввода по порядку:
- Если
f
и происходит обратное, ничего не делать - Если
f
не "под" любым другим действием, распечататьf
- Если
f
находится «под» линиейg
, выведитеf + " under " + g
где+
конкатенация.
вход
Непустая многострочная строка или список строк и т. Д., Состоящий из пробелов и строчных букв (вместо этого вы можете использовать прописные). Ровно одна строка будет начинаться с «un»; и это будет инверсия какой-то другой линии. Ни одна строка не будет пустой.
Выход
Вывод в том же формате, в котором вы вводили данные, или в соответствии с разрешением стандартного ввода-вывода
Тестовые случаи:
Input:
apply anesthetics
perform surgery
unapply anesthetics
Output:
perform surgery under apply anesthetics
Input:
unite asia
establish the silk road
ite asia
Output:
establish the silk road under unite asia
Input:
desire a book
walk to store
take the book
pay for the book
unwalk to store
read the book
Output:
desire a book
take the book under walk to store
pay for the book under walk to store
read the book
Input:
drink excessively
undrink excessively
Output:
[empty string]