Dada uma sequência quadrada, produza toda a saída da sequência em todas as etapas do desenrolamento.
A corda deve desenrolar no sentido horário um quarto de volta de cada vez.
Exemplos
Entrada :
A
Saída :
A
Nota : Também aceitarei a entrada duplicada para este caso de teste específico apenas se isso ajudar a reduzir sua contagem de bytes.
Entrada :
DC
AB
Saída :
DC
AB
D
ABC
ABCD
Entrada :
GFE
HID
ABC
Saída :
GFE
HID
ABC
HG
IF
ABCDE
IH
ABCDEFG
I
ABCDEFGH
ABCDEFGHI
Entrada :
JIHG
KPOF
LMNE
ABCD
Saída :
JIHG
KPOF
LMNE
ABCD
LKJ
MPI
NOH
ABCDEFG
NML
OPK
ABCDEFGHIJ
ON
PM
ABCDEFGHIJKL
PO
ABCDEFGHIJKLMN
P
ABCDEFGHIJKLMNO
ABCDEFGHIJKLMNOP
Regras
Isso é código-golfe, portanto o código mais curto em bytes vence.
- Qualquer formato razoável pode ser usado para E / S, assumindo que seja consistente.
- Os espaços devem ser usados para preencher as linhas superiores da saída.
- Deve ser capaz de lidar com a entrada de todos os caracteres imprimíveis (incluindo espaço:
\x20
-\x7e
):
! "# $% & '() * +, -. / 0123456789:;? @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\] ^ _` abcdefghijklmnopqrstuvwxyz {|} ~
- O espaço em branco à esquerda / à direita é permitido.
- Você pode assumir que a string sempre será um quadrado.
- Todas as brechas padrão são proibidas.
Inspiração: escreva um programa quadrado que produz o número de vezes que foi "desenrolado" .
["A","A"]
para"A"
, como o meu programa faz (em vez de["A"]
)? Parece-me razoável, uma vez que são apenas as posições inicial e final, e você apenas tenta desdobrar uma vez.