Trong Dyalog APL Extended của @ Adám , toán tử (dưới) có nghĩa là liên hợp: áp dụng một hàm, sau đó là hàm thứ hai, sau đó nghịch đảo hàm thứ nhất. Thật thú vị khi nghĩ về các hành động thực tế theo cách chia động từ:⍢
Một vấn đề được chuyển đổi bởi g thành một miền khác, nơi nó được giải quyết dễ dàng hơn bởi f, và sau đó chuyển đổi trở lại miền ban đầu. Một ví dụ từ đời thực là người Do Thái bị gây mê:
apply anesthetics perform surgery wake up from anesthetics
Thử thách
Nghịch đảo của một dòng g
là "un" được đặt trước g
và ngược lại. Xác định bất kỳ dòng nào giữa s
và nghịch đảo của nó, theo thứ tự đó, là "dưới" s
. Đối với mỗi dòng f
trong đầu vào theo thứ tự:
- Nếu
f
và nghịch đảo cả hai xảy ra, không làm gì cả - Nếu
f
không "dưới" bất kỳ hành động nào khác, hãy inf
- Nếu
f
là "dưới" một dòngg
, inf + " under " + g
nơi+
ghép.
Đầu vào
Một chuỗi nhiều dòng không trống, hoặc danh sách các chuỗi, v.v., bao gồm khoảng trắng và chữ thường (thay vào đó bạn có thể sử dụng chữ hoa). Chính xác một dòng sẽ bắt đầu bằng "un"; và nó sẽ là nghịch đảo của một số dòng khác. Không có dòng nào sẽ trống.
Đầu ra
Đầu ra ở cùng định dạng mà bạn đã nhập, hoặc được cho phép theo I / O tiêu chuẩn.
Các trường hợp thử nghiệm:
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]