Antecedentes
Quería hacer una bonita nube de palabras, como esta:
these are
words
floating
(x,y)
Calculé las coordenadas de la primera letra de cada palabra, las conecté al generador de nube de palabras y dejé que hiciera su trabajo. Sin embargo, accidentalmente usé (y,x)
-coordinates, por lo que el resultado se ve así:
these
floating
words
are
Como soy demasiado vago para volver a calcular las coordenadas, necesito que transpongas la nube de palabras por mí.
Entrada
Su entrada es una cuadrícula rectangular de letras minúsculas ASCII y espacios. Esto significa que cada fila se rellena con espacios para tener la misma longitud. La entrada se puede tomar como una cadena de varias líneas o una matriz de cadenas.
Una palabra es un segmento horizontal de letras, y su posición son las (x,y)
coordenadas de su letra más a la izquierda, siendo la esquina superior izquierda de la cuadrícula (0,0)
. Siempre habrá al menos una palabra y no habrá filas ni columnas de espacios al final. Sin embargo, las primeras filas o columnas de espacios pueden estar presentes.
Salida
Su salida es otra cuadrícula rectangular de caracteres, obtenida moviendo cada palabra con posición (x,y)
a posición (y,x)
. Su salida no debe contener filas o columnas de espacios adicionales. Las filas y columnas iniciales deben conservarse y la salida debe ser rectangular .
Puede suponer que esta transformación no crea palabras superpuestas y no combina varias palabras en una sola. Esto significa que ejecutar el programa en la salida debería producir la entrada original.
Reglas y puntaje
Puede escribir un programa completo o una función. El conteo de bytes más bajo gana, y las lagunas estándar no se permiten.
Casos de prueba
Para mayor claridad (y dado que a Stack Exchange no le gustan las líneas de solo espacio), cada fila termina en un carácter de barra |
.
Estos no son parte de la entrada o salida real , y debe eliminarlos. Tenga en cuenta nuevamente que ejecutar el programa en cada salida también debería producir la entrada correspondiente.
Input:
oneword|
Output:
oneword|
Input:
spaces|
Output:
|
|
spaces|
Input:
|
row|
Output:
row|
Input:
these are|
words |
|
floating |
Output:
these |
|
floating|
|
words |
|
|
|
are |
Input:
same|
the |
|
same |
Output:
same|
the |
|
same |
Input:
some |
words k|
|
|
|
still|
Output:
words |
|
some still|
|
|
|
k |
Input:
hello |
world hey|
what up |
Output:
what|
|
world|
hello |
|
|
|
up |
hey |
Input:
a b a d cc|
g h huh nng|
ye dunnn |
dud yo |
wha g |
huh heh hah|
Output:
|
g wha |
a ye huh|
h |
b dud |
dunnn |
huh heh|
a g |
|
d yo |
nng hah|
cc |