En Dyalog APL Extended de @ Adám , el operador (debajo) significa conjugación: aplique una función, luego una segunda función, luego la inversa de la primera. Es divertido pensar en acciones de la vida real en términos de conjugación:⍢
Un problema es transformado por g en otro dominio donde f resuelto más fácilmente por f, y luego transformado nuevamente en el dominio original. Un ejemplo de la vida real es "bajo anestesia":
apply anesthetics perform surgery wake up from anesthetics
Desafío
El inverso de una línea ges "un" antepuesto gy viceversa. Defina cualquier línea entre sy su inverso, en ese orden, como "debajo" s. Para cada línea fde entrada en orden:
- Si
fy su inverso ocurren, no haga nada - Si
fno está "bajo" ninguna otra acción, imprimaf - Si
festá "debajo" de una líneag, imprimaf + " under " + gdónde+está la concatenación.
Entrada
Una cadena de varias líneas no vacía, o una lista de cadenas, etc., que consta de espacios y letras minúsculas (en su lugar, puede usar mayúsculas). Exactamente una línea comenzará con "un"; y será el inverso de alguna otra línea. Ninguna línea estará vacía.
Salida
Salida en el mismo formato en el que ingresó, o según lo permitido por E / S estándar.
Casos de prueba:
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]