No Dyalog APL Extended de @ Adám , o operador (sub) significa conjugação: aplique uma função, depois uma segunda função e o inverso da primeira. É divertido pensar em ações da vida real em termos de conjugação:⍢
Um problema é transformado por g em outro domínio, onde é mais facilmente resolvido por f e, em seguida, transformado novamente no domínio original. Um exemplo da vida real é "sob anestesia":
apply anesthetics perform surgery wake up from anesthetics
Desafio
O inverso de uma linha gé "un" anexado ge vice-versa. Defina qualquer linha entre se sua inversa, nessa ordem, como "abaixo" s. Para cada linha fna entrada, em ordem:
- Se
fe seu inverso ocorrerem, não faça nada - Se
fnão estiver "sob" nenhuma outra ação, imprimaf - Se
festiver "abaixo" de uma linhag, imprimaf + " under " + gonde+está a concatenação.
Entrada
Uma sequência multilinha não vazia, ou lista de sequências, etc., consistindo em espaços e letras minúsculas (você pode usar maiúsculas). Exatamente uma linha começará com "un"; e será o inverso de alguma outra linha. Nenhuma linha estará vazia.
Resultado
Saída no mesmo formato em que você inseriu ou conforme permitido pela E / S padrão.
Casos de teste:
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]