Вы должны написать программу или функцию, которая получает блок символов, представленных в виде строки, и выводит или возвращает аналогичную строку, в которой соединены буквы, смежные в алфавите.
Наглядный пример (в виде input => output):
b d b d
|\ /|
| \ / |
=> | X |
| / \ |
e |/ \e
c a c a
Детали
- На входе будет строка, содержащая пробелы, символы новой строки и ровно одну из первых
Nстрочных букв.1 <= N <= 26 - Строки ввода будут дополнены пробелами, образующими полный прямоугольный блок.
- Каждая пара букв, смежных в алфавите, будет находиться в одной строке, столбце или диагональной линии и должна быть соединена с помощью прямой линии ascii
\ / | 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
/и -являются недействительными дублирования Xи +( / \ - and |) не может происходить в том же положении.