您应该编写一个程序或函数,该程序或函数接收一个以字符串表示的字符块,并输出或返回一个类似的字符串,在该字符串中,字母的相邻字母相互连接。
视觉示例(以的形式input => output
):
b d b d
|\ /|
| \ / |
=> | X |
| / \ |
e |/ \e
c a c a
细节
- 输入将是一个包含空格,换行符以及每个第一
N
个小写字母正好一个的字符串。1 <= N <= 26
- 输入的行将用空格填充,以创建一个完整的矩形块。
- 字母表中相邻的每对字母将在同一行,列或对角线上,并应使用来连接直线
\ / | or -
。(该行的长度可能为0。) 应处理以下两行重叠类型:
/ and \ become X | and - become + / and / become / \ and \ become \ | and | become | - and - become - [letter] and [anything] become [letter]
没有其他类型的两行重叠。
- 如果多于两条线重叠,则可以保证其中任意一对都是有效重叠之一。(例如,
[letter] / |
三重态将永远不会发生) - 除了将空间更改为
\ / | - X and +
输入和输出外,其他应该相同。 - 尾随换行符是可选的,但输入和输出必须相同。
- 这是代码高尔夫球,因此最短的条目将获胜。
例子
输入:
b d
h gi
e f
c a
输出:
b d
|\ /|
| \ / |
| X h+--gi
| / \ | |
|/ \e--f
c a
输入:
dk j
b l
c fg
a m
i h
e
输出:
dk----j
/|| /
b / |l /
|X | \/
c \ fg/\
\|/\ \
a \ m
/| \
i-+----h
e
输入:
eti sqjh k p u cfm vb owgzyx rnd la
输出:
eti--sqjh-k--p--u--cfm-vb-owgzyx-rnd-la
输入:
a
输出:
a
非常好的ASCII艺术
—
优化
如果X和+重叠都应该在同一位置怎么办?还是不是我们应该考虑的情况?
—
theonlygusti 2015年
@theonlygusti“如果有多于两行重叠,那么任何一对都将是有效重叠之一”例如,
—
randomra 2015年
/
并且-
是无效重叠,X
并且+
(/ \ - and |
)不能出现在同一位置。
仍然感到困惑;为什么不给我们一些例子呢?
—
theonlygusti 2015年
@theonlygusti:基本上,这不是您应该考虑的情况
—
Claudiu 2015年