Escriba un programa (o función) que tome una cadena no vacía de cualquier carácter ASCII imprimible .
Imprima (o devuelva) una cadena en zigzag de los caracteres en la cadena con cada par de caracteres vecinos unidos por:
/
si el primer carácter aparece antes del segundo carácter en el orden ASCII normal. p.ejB / A
\
si el primer carácter aparece después del segundo carácter en el orden ASCII normal. p.ejB \ A
-
si el primer y el segundo personaje son iguales. p.ejA-A
Entonces la salida para Programming Puzzles & Code Golf
sería
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
\ /
Si solo hay un carácter en la cadena de entrada, la salida sería ese carácter.
Su programa debe tratar ,
/
, \
, y -
lo mismo que todos los demás caracteres.
Por ejemplo, -\//-- \ //-
debe producir:
\
/ \
- /-/
/ \
- --- \ /-/
\ / \ / \
-
\
No debería haber nuevas líneas extrañas en la salida, excepto una nueva línea final opcional. (Tenga en cuenta que la línea vacía en el ejemplo anterior contiene el último espacio en la cadena y, por lo tanto, no es ajena). Puede haber espacios finales en cualquier línea en cualquier disposición.
El código más corto en bytes gana.
Un ejemplo más - Entrada:
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Salida:
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'
con una cadena de plantilla como esta