Você receberá uma String consistindo em ASCII imprimível (sem novas linhas). Sua tarefa é construir uma escada agradável para o meu castelo.
Como construir uma escada agradável?
Primeiro, você deve obter todas as rotações da String. Por exemplo, a String
abcd
tem as seguintes rotações:abcd, bcda, cdab, dabc
(cada caractere é movido para o final até atingirmos o último caractere).Agora, colocamos cada rotação uma sobre a outra:
abcd bcda cdab dabc
Não podemos realmente subir em uma parede reta, por isso precisamos construir escadas. Isso significa que você deve adicionar um número de espaços antes de cada rotação correspondente ao seu índice na lista de rotações:
abcd bcda cdab dabc
Você também precisa de uma escada que se conecte ao outro lado do meu castelo, portanto, você deve construir uma como abaixo, invertendo cada rotação e adicionando algum espaçamento:
abcd dcba bcda adcb cdab badc dabccbad
Isso é código-golfe , portanto, o código mais curto em bytes vence e aplicam-se regras padrão para a tag.
Casos de teste
Entrada
abcd
:, Saída:abcd dcba bcda adcb cdab badc dabccbad
Entrada
aaaa
:, Saída:aaaa aaaa aaaa aaaa aaaa aaaa aaaaaaaa
Entrada:,
Code golf
Saída (Observe os espaços):Code golf flog edoC ode golfC Cflog edo de golfCo oCflog ed e golfCod doCflog e golfCode edoCflog golfCode edoCflog olfCode g g edoCflo lfCode go og edoCfl fCode gollog edoCf
dab
c. -------Respostas:
05AB1E , 12 bytes
Código:
Usa a codificação 05AB1E . Experimente online!
Explicação:
fonte
Gelatina , 16 bytes
Experimente online!
Claro, -1 usando Jonathan Allan 's
ɓ
!fonte
J’ɓ⁹⁶ẋ;"ṙz⁶Zm€0Y
(ouLḶ
paraJ’
)Retina , 47 bytes
Experimente online! Explicação: O primeiro estágio cria a escada esquerda considerando cada caractere e criando espaços iguais à posição atual, o restante da sequência, o início da sequência e os espaços iguais ao restante da sequência. O restante do script é executado em cada linha gerada por sua vez. Primeiro, a linha é duplicada, os caracteres na duplicata são revertidos e a linha e sua duplicata são concatenadas.
fonte
Python 3 , 89 bytes
Experimente online!
-1 byte graças a ovs
-1 byte graças a Lynn
fonte
l-i-1
pode ser apenasl+~i
como~i == -i-1
' '*(l+~i)*2
é igual a' '*(l+~i)
, que é um byte mais curto!C (gcc) , 126 bytes
Experimente online!
fonte
Carvão ,
23 2120 bytesExperimente online!
Provavelmente, você pode jogar mais, mas estou postando no aplicativo para dispositivos móveis. Link para a versão detalhada .
fonte
G→↘←Lθθ‖C
.Haskell,
8079 bytesExperimente online!
Como funciona
Edit: Obrigado a Ørjan Johansen por um byte.
fonte
u#_=u
salva um byte.unlines
ondeu#_=u
não digita check e depois mudei para a construção de uma única string ... Obrigado!J, 34 bytes
destroçado
Experimente online!
fonte
Pitão , 19 bytes
Experimente online!
fonte
Mathematica, 119 bytes
fonte
PHP, 95 bytes
Execute como pipe
-nR
ou experimente on-line .demolir
fonte
Japonês , 22 bytes
A nova linha líder faz parte do programa.
Experimente online!
Execute todos os casos de teste usando o meu WIP CodePen.
Explicação
Implícito:
U
= sequência de entrada. A primeira linha está em branco para não sobrescreverU
.A segunda linha atribui implicitamente o comprimento (
l
) deU
aV
.Terceira linha:
fonte
Pitão, 20 bytes
Experimente online!
fonte
Javascript (ES6), 118 bytes
Exemplo de trecho de código:
fonte
Python 2 ,
8583 bytesl+~i
e me ajudou a identificar um espaço indesejadoExperimente online!
fonte
l-1-i
pode ser apenasl+~i
como~i == -i-1
8th ,
173168 bytesCódigo
Versão ungolfed com comentários
Uso e exemplos
Ou mais claramente
fonte