Alternar , é o ato de pegar uma corda e aninha-la entre colchetes. Aqui está como você alterna uma string.
Para uma sequência de comprimento N , pegue os caracteres N centrais e coloque-os entre parênteses. Portanto, se nossa string tiver
Hello world!
(12 caracteres), terminaremos com(Hello world!)
Em seguida, pegue os
n-2
caracteres centrais restantes e coloque-os entre colchetes. Nesse caso, os 10 caracteres centrais sãoello world
, portanto, a próxima iteração é:(H[ello world]!)
Enquanto houver mais de dois caracteres no meio da sequência, repita os dois últimos passos, alternando entre
()
e[]
. Aqui estão os últimos passos:(Hello world!) (H[ello world]!) (H[e(llo worl)d]!) (H[e(l[l(o[ w]o)r]l)d]!)
Como há apenas dois caracteres no meio na última iteração, paramos. Nossa string final é
(H[e(l[l(o[ w]o)r]l)d]!)
Observe como existem dois caracteres entre colchetes. Isso acontece quando a entrada tem um comprimento uniforme. Se a entrada tivesse um comprimento ímpar (por exemplo,
Hello, world!
com uma vírgula adicionada), teríamos apenas um caractere no meio:(H[e(l[l(o[,( )w]o)r]l)d]!)
Para o desafio de hoje, você deve escrever um programa ou função que use uma string como entrada e a alterne, produzindo a nova string. Você pode receber entrada e saída em qualquer formato razoável que desejar. A entrada sempre terá pelo menos um caractere e conterá apenas ASCII imprimível. Você também pode assumir que a entrada não conterá parênteses ou colchetes. Para idiomas tradicionais, isso não deve importar muito, mas pode facilitar para alguns idiomas esotéricos.
Como sempre, esse é um competição de código-golfe , portanto, tente fazer a resposta mais curta possível no idioma de sua escolha. Diverta-se!
Teste de E / S
#Input #Output
"Alternesting is fun!" --> (A[l(t[e(r[n(e[s(t[in]g) ]i)s] )f]u)n]!)
"PPCG" --> (P[PC]G)
"Code-golf" --> (C[o(d[e(-)g]o)l]f)
"4 8 15 16 23 42" --> (4[ (8[ (1[5( [1]6) ]2)3] )4]2)
"a" --> (a)
"ab" --> (ab)
"abc" --> (a[b]c)
()
) ou podemos começar com colchetes ( []
)?
()
HelloWorld
.