编写一个程序(或函数),该程序接受任何可打印ASCII字符的非空字符串。
打印(或返回)字符串中的字符的锯齿形链,每个相邻的字符对通过以下方式链接:
/
如果第一个字符以正常ASCII顺序出现在第二个字符之前。例如B / A
\
如果第一个字符以正常ASCII顺序出现在第二个字符之后。例如B \ A
-
如果第一个和第二个字符相同。例如A-A
因此,输出Programming Puzzles & Code Golf
将是
o
/ \
r z-z o e G l
/ \ / \ / \ / \ / \
P o r m-m n u l s & C d f
\ / \ / \ / \ / \ / \ / \ /
g a i g P e
\ /
如果输入字符串中只有一个字符,则输出将只是该字符。
你的程序应该对待,
/
,\
,和-
刚才一样的所有其他字符。
例如 -\//-- \ //-
应该产生:
\
/ \
- /-/
/ \
- --- \ /-/
\ / \ / \
-
\
除单个可选的尾随换行符外,输出中不应有多余的换行符。(请注意,上面示例中的空行保留了字符串中的最后一个空格,因此不会多余。)在任何排列中的任何行上都可能存在尾随空格。
以字节为单位的最短代码获胜。
再举一个例子-输入:
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
输出:
9 9 8 6 6
/ \ / \ / \ / \ / \
9 6 8 7 3 3 4 2 4 8 9 8-8
/ \ / \ / \ / \ / \ / \ / \
4 5 2 5 5 2 3-3 3 7 5 2 4 9 9 9-9 7
/ \ / \ / \ / \ / \ / \ / \ / \ / \
3 1 1 3 2 0 1 7 6 3 3 5 8 8 6
\ / \ / \ / \ / \ / \
. 1 1 5 2 9 9 3 7 1 4 6 8 9
\ / \ / \ / \ / \ / \ / \ / \ /
0 0 7 9 5 2 0 0 2 6 9-9 8 5 4 7
\ / \ / \ / \ / \ / \ / \ /
4 4-4 2 8 8 4 2 3 2 7 6
\ / \ / \ / \ /
0 6 8 3 1-1 0
\ / \ /
2 0
'\n'
一个模板字符串像这样