Tarea
Su tarea es escribir un programa completo, que alineará la entrada dada a un bloque de tamaño dado.
Entrada:
40
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Salida:
Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim
id est laborum.
<-- note the linebreak
Detalles de entrada
- Tienes que escribir todo el programa ejecutable / interpretable.
- Puede suponer que la entrada contiene solo caracteres ASCII imprimibles y no contiene tabulación
\t
. - La entrada puede contener saltos de línea. Si no es así, que se dan como
\n
,\r
o\r\n
en función de lo que espera. Sin embargo, están unidos en todo el aporte. - La entrada se puede dar en STDIN, o como argumentos de línea de comando. Puede usar ambos si se ajusta a sus necesidades (por ejemplo, lea el tamaño del bloque de los argumentos del comando e ingrese como stdin). Sin embargo, no puede codificar ninguna parte de la entrada a su programa.
- Puede suponer que el tamaño del bloque se da como un
> 0
número positivo ( ) válido . - El salto de línea en la entrada se trata de la misma manera que un espacio (por lo tanto, separador de palabras)
- Si la entrada contiene múltiples espacios concurrentes, se tratan como uno.
Detalles de salida
- La salida debe formatearse en un bloque de tamaño determinado. El formateo se realiza agregando espacios entre palabras.
- El número de espacios entre palabras en una línea tiene que ser igual para esa línea. Si no es posible, se deben agregar espacios adicionales uno por uno después de las palabras que comienzan desde la izquierda.
- Si la palabra es más larga que el tamaño de bloque dado, se mantendrá sola en una sola línea (y excederá el tamaño de bloque).
- Si la salida debe contener solo una palabra, se alineará a la izquierda.
- La última línea de la salida debe estar alineada a la izquierda, con solo un espacio entre las palabras. La última línea de la salida tiene que terminar con el salto de línea final.
La respuesta, con el menor número de bytes después de un tiempo, gana.
Si necesita información adicional, deje un comentario.
Casos de prueba
Input:
10
Lorem ipsum dolor sit amet,
consectetur adipiscing elit, sed do eiusmod tempor
Output:
Lorem
ipsum
dolor sit
amet,
consectetur
adipiscing
elit, sed
do eiusmod
tempor
Input:
20
Lorem ipsum
dolor sit amet,
Output:
Lorem ipsum dolor
sit amet,
Input:
1
Lorem ipsum dolor sit amet
Output:
Lorem
ipsum
dolor
sit
amet
Relacionado. (Finalmente, un segundo desafío para mi etiqueta de tipografía que ya se eliminó automáticamente;))
—
Martin Ender
@ MartinBüttner No sabía que tal etiqueta existe.
—
Zereges
@ Vɪʜᴀɴ Debe escribir todo el programa ejecutable / interpretable.
—
Dennis
Duplicar de Justificar un texto agregando espacios .
—
pppery
@ppperry Interesante, por alguna razón, evitó mis habilidades de búsqueda
—
Zereges