Sie sollten ein Programm oder eine Funktion schreiben, die einen als Zeichenfolge dargestellten Zeichenblock empfängt und eine ähnliche Zeichenfolge ausgibt oder zurückgibt, in der die im Alphabet benachbarten Buchstaben verbunden sind.
Ein visuelles Beispiel (in Form von input => output
):
b d b d
|\ /|
| \ / |
=> | X |
| / \ |
e |/ \e
c a c a
Einzelheiten
- Die Eingabe erfolgt als Zeichenfolge mit Leerzeichen, Zeilenumbrüchen und genau einem der ersten
N
Kleinbuchstaben.1 <= N <= 26
- Die Zeilen der Eingabe werden mit Leerzeichen aufgefüllt, um einen vollständigen rechteckigen Block zu erstellen.
- Jedes im Alphabet benachbarte Buchstabenpaar befindet sich in derselben Zeile, Spalte oder Diagonale und sollte mit einer geraden ASCII-Linie verbunden werden
\ / | or -
. (Die Linie kann eine Länge von 0 haben.) Die folgenden Arten von zweizeiligen Überlappungen sollten behandelt werden:
/ and \ become X | and - become + / and / become / \ and \ become \ | and | become | - and - become - [letter] and [anything] become [letter]
Es wird keine andere Art von zweizeiliger Überlappung auftreten.
- Wenn sich mehr als zwei Linien überlappen, wird garantiert, dass eines der Paare eine der gültigen Überlappungen ist. (zB
[letter] / |
Triplett wird niemals auftreten) - Abgesehen davon, dass Leerzeichen in
\ / | - X and +
Eingabe und Ausgabe geändert werden, sollten sie identisch sein. - Der Zeilenumbruch ist optional, muss jedoch für die Eingabe und Ausgabe identisch sein.
- Dies ist Code-Golf, also gewinnt der kürzeste Eintrag.
Beispiele
Eingang:
b d
h gi
e f
c a
Ausgabe:
b d
|\ /|
| \ / |
| X h+--gi
| / \ | |
|/ \e--f
c a
Eingang:
dk j
b l
c fg
a m
i h
e
Ausgabe:
dk----j
/|| /
b / |l /
|X | \/
c \ fg/\
\|/\ \
a \ m
/| \
i-+----h
e
Eingang:
eti sqjh k p u cfm vb owgzyx rnd la
Ausgabe:
eti--sqjh-k--p--u--cfm-vb-owgzyx-rnd-la
Eingang:
a
Ausgabe:
a
/
und -
ungültig sind Überlappungen X
und +
( / \ - and |
) nicht an der gleichen Stelle auftreten.