O cenário
Dada uma entrada de letras minúsculas e espaços ASCII, desenhe uma espiral de caracteres que rastreia a entrada original de caracteres, excluindo espaços.
As regras
1) Os caracteres devem girar em sentido anti-horário para a esquerda de maneira externa. Se não for possível uma curva à esquerda, siga em frente.
Given: abcdefg
Output:
g
baf
cde
2) Os caracteres podem se transformar em caracteres anteriores, desde que a regra nº 1 não seja violada. Além disso, se esse caractere estiver em espiral, ele estará em maiúsculas. Depois que um caractere estiver em maiúsculas, ele permanecerá em maiúsculas, independentemente do número de vezes que for reutilizado.
Given: apples appeal
Output:
PAs
PLe
ea
abcdefghab
?Respostas:
JavaScript,
225221212 bytes-9 bytes graças a Conor O'Brien
Observe que seus casos de texto entram em conflito entre si. Seu primeiro caso de teste começa no meio da espiral. Seu segundo caso de teste começa no meio da espiral. Eu fui com o seu primeiro caso de teste, porque foi o primeiro que vi. Você não editou sua pergunta há mais de um ano, desculpe a presunção.
Primeiro caso de teste:
Segundo caso de teste:
Sem mais delongas, aqui está o código do golfe. Tenho 100% de certeza de que, se a comunidade lascar, isso poderá ser reduzido significativamente. Isso retorna uma matriz de várias linhas.
Snippet de pré-certificação (imprime uma string de várias linhas no console). Observe o diferente no meu caso de teste nº 2 e no caso de teste nº 2 do OP (veja acima, se você ainda não o tiver):
(se alguém com mais experiência com trechos quiser corrigir isso na entrada HTML, sinta-se à vontade para editar isso, preciso ir para a cama).
Ungolfed e explicação
fonte
a.split("")
é equivalente a[...a]
;s=>{...;return a;}
é equivalente as=>eval("...;a")
(e;
é opcional na versão menos golfe); todos os pontos e vírgulas seguidos por um}
são opcionaisapples appeal
? Estou vendoppa
eas
aLe
, o que definitivamente não está correto, porque não hál
próximo aop
s.eppa
apas
lple
s
.