Regras
O programa deve receber uma string / matriz de palavras como entrada. Para cada palavra na string / matriz, ela será reconstruída, colocando os caracteres de maneira alternada na frente e no verso da palavra.
12345 678 9 -> 15243 687 9.
Em seguida, reorganizará as palavras de maneira alternada entre a primeira e a última palavra que ocorrer na sequência.
15243 687 9 -> 15243 9 687
Finalmente, ele reconstruirá a string colocando os espaços, tabulações e novas linhas nos índices em que estavam inicialmente localizadas antes de gerar o resultado.
12345 678 9-> 15243 687 9 -> 15243 9 687 -> 15243 968 7
A saída deve ser o mesmo tipo de dados que a entrada.
As brechas padrão são proibidas
Exemplos
Entrada:
A rápida raposa marrom pula sobre o cachorro preguiçoso.
Saída:
Teh d.ogq kucil yaz bnrwo tehf xoo rvej supmEntrada:
A rápida raposa marrom pula
sobre o cachorro preguiçoso.
Saída:
Teh d.ogq kucil yaz bnrwo
tehf xoo rvej supmEntrada:
Aflack
saída:
Akfcla
Isso é código-golfe, então o código mais curto ganha
fonte
Respostas:
Geléia ,
15 148 bytesUma economia impressionante de 6 bytes de Dennis (movendo o achatamento e o molde dentro do link 1, não há necessidade de se dividir em dois e cabeça, e um achatamento já existe para que eles se tornem um!)
(das duas linhas:,
żṚFœs2Ḣ
eÇ€ÇFṁ⁸
)Experimente online!
Pega uma matriz de palavras e retorna uma matriz de novas palavras. (O rodapé do TIO chama isso e junta a matriz com espaços para que ela seja impressa com perfeição.)
Nota - manipular uma única string, dividir espaços de tabulação e novas linhas e, em seguida, remontar era realmente complicado; quando vi que uma lista de palavras era uma opção, as coisas ficaram muito mais fáceis!
Quão?
fonte
JavaScript (ES6), 89 bytes
Pega e gera uma matriz de palavras.
Teste
Mostrar snippet de código
Versão da sequência, 112 bytes
Pega e gera uma string.
Teste
Mostrar snippet de código
fonte
Perl , 77 bytes
74 bytes de código + 3 bytes para
-0pa
sinalizadores.Experimente online!
Salvo 8 bytes, graças a um velho @Ton Hospel 's pós onde eu 'roubei'
s/../chop/reg
. (Eu já tinha$c=y///c/2,s/.{$c}$//
)fonte
Perl 6 , 84 bytes
Insere e gera uma lista de palavras.
Como funciona
Dentro do lambda, eu defini outro lambda para executar os toques de " personagens alternados de frente e de trás ":
Isso funciona porque o
xx
operador se parece mais com uma macro do que com uma função, na medida em que fornece uma avaliação preguiçosa mágica.Então, na lambda principal:
Perl 6 , 87 bytes
Essa é uma variação do acima, que insere e gera uma string - preservando diferentes caracteres de espaço em branco.
fonte
Haskell ,
115 95 93 9895 bytesLigue com
(!)=<<(f=<<).f.words $ "some string"
. Experimente online!Agradecemos a @nimi por apontar que eu interpretei errado o desafio anteriormente.
A função
f
executa a torção em uma lista, para que possa ser usada em strings (lista de caracteres) e uma lista de strings.a!b
insere o espaço em branco da stringb
na stringa
.(!)=<<(f=<<).f.words
é equivalente a\s0 -> (concatMap f . f . words $ s0) ! s0
:fonte