在@Adám的 Dyalog APL扩展中,⍢
(下)运算符表示共轭:应用一个函数,然后应用第二个函数,然后应用第一个函数的反函数。从共轭的角度考虑现实生活中的动作很有趣:
一个问题由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”开头;这将是其他一些线的反面。没有行将为空。
输出量
以您输入时使用的相同格式或标准I / O允许的格式输出。
测试用例:
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]
1
当我过量饮酒时,我也没有任何输出
—
Stan Strum
难道不是“拿走书并付钱买书”吗?否则不清楚转换是否等同于原始转换...
—
Jonah
@Jonah这个想法是在理想的世界中w =“ walk to store”和w ^ -1 =“ unwalk to store”是逆的,因此从数学上来说wfw ^ -1wg ^ -1 = wfgw ^ -1。
—
lirtosiast
足够公平了,@ lirtosiast。
—
乔纳