Escreva um programa (ou função) que receba uma sequência não vazia de qualquer caractere ASCII imprimível .
Imprima (ou retorne) uma cadeia de caracteres em zigue-zague na cadeia de caracteres com todos os pares de caracteres vizinhos vinculados por:
/
se o primeiro caractere ocorrer antes do segundo caractere na ordem ASCII normal. por exemploB / A
\
se o primeiro caractere ocorrer após o segundo caractere na ordem ASCII normal. por exemploB \ A
-
se o primeiro e o segundo caracteres forem iguais. por exemploA-A
Portanto, a saída para Programming Puzzles & Code Golf
seria
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
\ /
Se houver apenas um caractere na sequência de entrada, a saída seria apenas esse caractere.
Seu programa deve tratar ,
/
, \
, e -
da mesma forma como todos os outros personagens.
por exemplo, -\//-- \ //-
deve produzir:
\
/ \
- /-/
/ \
- --- \ /-/
\ / \ / \
-
\
Não deve haver novas linhas estranhas na saída, exceto por uma única nova linha à direita opcional. (Observe que a linha vazia no exemplo acima mantém o último espaço na cadeia e, portanto, não é estranha.) Pode haver espaços à direita em qualquer linha em qualquer disposição.
O código mais curto em bytes vence.
Mais um exemplo - Entrada:
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Resultado:
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'
por uma string de modelo como esta