Powinieneś napisać program lub funkcję, która odbiera blok znaków reprezentowany jako ciąg znaków i wyświetla lub zwraca podobny ciąg znaków, w którym połączone są litery sąsiadujące z alfabetem.
Przykład wizualny (w formie input => output
):
b d b d
|\ /|
| \ / |
=> | X |
| / \ |
e |/ \e
c a c a
Detale
- Dane wejściowe będą ciągiem zawierającym spacje,
N
znaki nowej linii i dokładnie jedną z pierwszych pierwszych małych liter.1 <= N <= 26
- Linie wejściowe zostaną wypełnione spacjami, tworząc pełny prostokątny blok.
- Każda para liter sąsiadujących z alfabetem będzie w tym samym rzędzie, kolumnie lub ukośnej linii i powinna być połączona za pomocą prostej linii ascii
\ / | or -
. (Linia może mieć długość 0.) Należy obsługiwać następujące typy nakładania się dwóch linii:
/ and \ become X | and - become + / and / become / \ and \ become \ | and | become | - and - become - [letter] and [anything] become [letter]
Nie wystąpi żaden inny rodzaj nakładania się dwóch linii.
- Jeśli więcej niż dwie linie nachodzą na siebie, każda para z nich będzie gwarantowana jako jedna z prawidłowych zakładek. (np.
[letter] / |
tryplet nigdy się nie pojawi) - Oprócz zamiany spacji na
\ / | - X and +
dane wejściowe i wyjściowe powinny być identyczne. - Końcowy znak nowej linii jest opcjonalny, ale musi być taki sam dla wejścia i wyjścia.
- To jest golf golfowy, więc wygrywa najkrótszy wpis.
Przykłady
Wkład:
b d
h gi
e f
c a
Wydajność:
b d
|\ /|
| \ / |
| X h+--gi
| / \ | |
|/ \e--f
c a
Wkład:
dk j
b l
c fg
a m
i h
e
Wydajność:
dk----j
/|| /
b / |l /
|X | \/
c \ fg/\
\|/\ \
a \ m
/| \
i-+----h
e
Wkład:
eti sqjh k p u cfm vb owgzyx rnd la
Wydajność:
eti--sqjh-k--p--u--cfm-vb-owgzyx-rnd-la
Wkład:
a
Wydajność:
a
/
i -
są nieprawidłowe nakładki X
i +
( / \ - and |
) nie mogą wystąpić w tej samej pozycji.