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 ÜberlappungenX
und+
(/ \ - and |
) nicht an der gleichen Stelle auftreten.Antworten:
Perl, 219
Einige Verbesserungen sind möglicherweise noch möglich.
Versuch es mit mir .
quelle
JavaScript (ES6) 246
266 280 285 307Ziemlich sperrig ...
Eine Funktion mit String-Parameter und Rückgabe des modifizierten Strings. Ein abschließender Zeilenumbruch ist optional, es sei denn, die Eingabe besteht nur aus einer Zeile (ich benötige einen Zeilenumbruch, um die Zeilenlänge zu ermitteln).
Nur um jemanden glücklich zu machen
Mehr lesbar
Test In der Firefox / FireBug-Konsole
Ausgabe
quelle
341
Zeichen.