Schreiben Sie ein Programm (oder eine Funktion), das eine nicht leere Zeichenfolge druckbarer ASCII- Zeichen enthält.
Gibt eine zickzackförmige Kette der Zeichen in der Zeichenfolge aus (oder zurück), wobei jedes benachbarte Zeichenpaar durch Folgendes verknüpft ist:
/
wenn das erste Zeichen vor dem zweiten Zeichen in normaler ASCII-Reihenfolge vorkommt. z.BB / A
\
wenn das erste Zeichen nach dem zweiten Zeichen in normaler ASCII-Reihenfolge vorkommt. z.BB \ A
-
wenn das erste und zweite Zeichen gleich sind. z.BA-A
So ist der Ausgang für Programming Puzzles & Code Golf
wäre
o
/ \
r z-z o e G l
/ \ / \ / \ / \ / \
P o r m-m n u l s & C d f
\ / \ / \ / \ / \ / \ / \ /
g a i g P e
\ /
Wenn die Eingabezeichenfolge nur ein Zeichen enthält, ist die Ausgabe nur dieses Zeichen.
Ihr Programm sollte behandeln ,
/
, \
, und -
genauso wie alle anderen Zeichen.
zB -\//-- \ //-
soll erzeugen:
\
/ \
- /-/
/ \
- --- \ /-/
\ / \ / \
-
\
Die Ausgabe sollte keine überflüssigen Zeilenumbrüche enthalten, mit Ausnahme eines einzelnen optionalen Zeilenumbruchs. (Beachten Sie, dass die leere Zeile im obigen Beispiel das letzte Leerzeichen in der Zeichenfolge enthält und daher nicht irrelevant ist.) In jeder Zeile und in jeder Anordnung dürfen Leerzeichen nachgestellt werden.
Der kürzeste Code in Bytes gewinnt.
Ein weiteres Beispiel - Eingabe:
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Ausgabe:
9 9 8 6 6
/ \ / \ / \ / \ / \
9 6 8 7 3 3 4 2 4 8 9 8-8
/ \ / \ / \ / \ / \ / \ / \
4 5 2 5 5 2 3-3 3 7 5 2 4 9 9 9-9 7
/ \ / \ / \ / \ / \ / \ / \ / \ / \
3 1 1 3 2 0 1 7 6 3 3 5 8 8 6
\ / \ / \ / \ / \ / \
. 1 1 5 2 9 9 3 7 1 4 6 8 9
\ / \ / \ / \ / \ / \ / \ / \ /
0 0 7 9 5 2 0 0 2 6 9-9 8 5 4 7
\ / \ / \ / \ / \ / \ / \ /
4 4-4 2 8 8 4 2 3 2 7 6
\ / \ / \ / \ /
0 6 8 3 1-1 0
\ / \ /
2 0
'\n'
durch eine Vorlage wie diese