介绍
LaTeX排版系统使用宏来定义重音。例如,字母ê由产生\hat{e}
。在这个挑战中,您的任务是实现此功能的ASCII版本。
输入值
您的输入是可打印的ASCII字符的非空字符串。它不会包含换行符。
输出量
您的输出是由两行组成的字符串。第一行包含重音符号,第二行包含重音符号。它是从输入中获得的,如下所示(A
表示任意字符):
- 每个
\bar{A}
被替换A
用_
在它上面。 - 每个
\dot{A}
被替换A
用.
在它上面。 - 每个
\hat{A}
被替换A
用^
在它上面。 - 对于10%的奖金:每一个
\tilde{A}
被替换A
用~
在它上面。 - 所有其他字符上方都有一个空格。
例如,输入
Je suis pr\hat{e}t.
结果输出
^
Je suis pret.
规则和计分
你可以假设字符\{}
仅发生在宏\bar{}
,\dot{}
和\hat{}
(和\tilde{}
如果你去的奖金)。所有宏参数是准确的一个字符长,所以\dot{foo}
和\dot{}
输入不会发生。输出可以是换行符分隔的字符串,也可以是两个字符串的列表/对。只要重音位于正确的位置,就可以允许任何数量的尾随和前导空格。特别是,如果没有重音,则输出可以是单个字符串。
您可以编写完整的程序或函数。最低字节数(奖金后)获胜,并且不允许出现标准漏洞。
测试用例
没有奖金:
Input:
No accents.
Output:
No accents.
Input:
Ch\hat{a}teau
Output:
^
Chateau
Input:
Som\bar{e} \dot{a}cc\hat{e}nts.
Output:
_ . ^
Some accents.
Input:
dot hat\dot{h}a\hat{t}\hat{ }x\bar{x}dot
Output:
. ^^ _
dot hathat xxdot
Input:
\hat{g}Hmi\hat{|}Su5Y(\dot{G}"\bar{$}id4\hat{j}gB\dot{n}#6AX'c\dot{[}\hat{)} 6\hat{[}T~_sR\hat{&}CEB
Output:
^ ^ . _ ^ . .^ ^ ^
gHmi|Su5Y(G"$id4jgBn#6AX'c[) 6[T~_sR&CEB
有奖金:
Input:
Ma\tilde{n}ana
Output:
~
Manana
Input:
\dot{L}Vz\dot{[}|M.\bar{#}0\hat{u}U^y!"\tilde{I} K.\bar{"}\hat{m}dT\tilde{$}F\bar{;}59$,/5\bar{'}K\tilde{v}R \tilde{E}X`
Output:
. . _ ^ ~ _^ ~ _ _ ~ ~
LVz[|M.#0uU^y!"I K."mdT$F;59$,/5'KvR EX`
我开始在Go中对此进行原型设计,但是后来我意识到Python会简单得多……
—
2015年
我们可以假设每个标记条目仅包含一个字符吗?或者换句话说,是
—
彼得·泰勒
\bar{foo}
有效输入吗?
@PeterTaylor是的,每个宏参数都只有一个字符长。我会澄清这一点。
—
Zgarb 2015年