Esse desafio é inspirado em uma pergunta do SO sobre o deslocamento de uma matriz, enumerando todas as suas faixas diagonais.
Em vez de uma matriz, considere um bloco de texto:
ABCD
EFGH
IJKL
Atravessar as diagonais SW-NE deste bloco da esquerda para a direita, iniciando no canto superior esquerdo e terminando no canto inferior direito, resulta na seguinte saída:
A
EB
IFC
JGD
KH
L
Desafio
Escreva um programa ou uma função que execute o inverso do processo descrito acima. Ou seja, dado um conjunto de faixas diagonais SW-NE, imprima o bloco de texto que o produziu.
Entrada e saída
Tanto a entrada quanto a saída podem ser representadas como cadeias de caracteres com novas linhas ou matrizes / listas de cadeias.
Novas linhas à direita são opcionais.
A entrada consistirá em pelo menos um caractere imprimível e pode ser assumida como correta (não haverá comprimentos de linha inconsistentes).
O bloco de saída sempre terá um número de colunas maior ou igual ao número de linhas.
Casos de teste
Entrada:
A
Resultado:
A
Entrada:
.
LI
PO.
PV.
CE
G
Resultado:
.I..
LOVE
PPCG
Entrada:
M
DA
AIT
LAR
SGI
/OX
/N
/
Resultado:
MATRIX
DIAGON
ALS///
Respostas:
CJam,
2320 bytesExperimente aqui .
fonte
{_z,,Nf*W%\.+zW%sN%}
Python 2, 84
Entrada e saída são listas de strings.
A lista de linhas
L
a serem impressas é criada à medida que lemos a entrada. Cada novo personagem é anexado a uma linha, começando na última linhai=-1
e progredindo em direção à frente.Sempre que a nova linha para adicionar é muito longo para a lista, uma nova linha em branco é acrescentado:
L+=[''][:len(w)-len(L)]
. Estou esperando uma maneira de encurtar esta parte.fonte
Python 2,
165162169163 bytesLê todas as linhas da entrada e as transforma em uma lista de listas. Loops enquanto essa lista possui elementos. Em cada iteração, ele exibe o último elemento do número de listas internas igual ao número de colunas na saída. A lista é então limpa e a linha impressa.
Exemplos:
Obrigado a w0lf por salvar 6 bytes.
PYG , 139 bytes
fonte
s=''
necessário?Pitão,
332325 bytesPorque Python.
fonte