W @ Adama Dyalog APL Rozszerzona The ⍢
(pod) operator środki koniugacji: stosować jedną funkcję, a następnie drugą funkcję, a następnie odwrotność pierwszego. Fajnie jest myśleć o rzeczywistych działaniach w kategoriach odmiany:
Problem jest przekształcany przez g w inną domenę, w której łatwiej jest go rozwiązać przez f, a następnie przekształcany z powrotem w pierwotną domenę. Przykładem z prawdziwego życia jest „pod znieczuleniem”:
apply anesthetics perform surgery wake up from anesthetics
Wyzwanie
Odwrotność linii g
jest poprzedzana „un” g
i odwrotnie. Zdefiniuj dowolną linię między s
i odwrotną, w tej kolejności, jako znajdującą się „pod” s
. Dla każdej wprowadzanej linii f
w kolejności:
- Jeśli
f
i odwrotnie występują oba, nie rób nic - Jeśli
f
nie ma „pod” żadną inną czynnością, wydrukujf
- Jeśli
f
jest „pod” liniąg
, wypiszf + " under " + g
gdzie+
jest konkatenacja.
Wejście
Niepusty ciąg wielowierszowy lub lista ciągów itp., Składająca się ze spacji i małych liter (zamiast tego możesz użyć wielkich liter). Dokładnie jedna linia zaczyna się od „un”; i będzie odwrotnością innej linii. Żadna linia nie będzie pusta.
Wynik
Wyjście w tym samym formacie, w którym wprowadzono dane, lub w sposób dozwolony przez Standard I / O.
Przypadki testowe:
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]