Tarefa
Sua tarefa é escrever um programa inteiro, que alinhará a entrada fornecida a um bloco de tamanho especificado.
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.
Resultado:
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
Detalhes da entrada
- Você precisa escrever um programa executável / interpretável inteiro.
- Você pode supor que a entrada contenha apenas caracteres ASCII imprimíveis e não contenha tabulação
\t
. - A entrada pode conter quebras de linha. Se ele faz isso, eles são dadas como
\n
,\r
ou\r\n
dependendo do que você espera. No entanto, eles estão unidos em toda a entrada. - A entrada pode ser fornecida em STDIN ou como argumentos de linha de comando. Você pode usar os dois se atender às suas necessidades (por exemplo, leia o tamanho do bloco no comando args e insira como stdin). No entanto, você não pode codificar qualquer parte da entrada do seu programa.
- Você pode supor que o tamanho do bloco seja dado como
> 0
número positivo ( ) válido . - A quebra de linha na entrada é tratada da mesma maneira que um espaço (sendo assim um separador de palavras)
- Se a entrada contiver vários espaços simultâneos, eles serão tratados como um.
Detalhes da saída
- A saída deve ser formatada em um bloco de determinado tamanho. A formatação é feita adicionando espaços entre as palavras.
- O número de espaços entre as palavras em uma linha deve ser igual para essa linha. Se não for possível, espaços adicionais devem ser adicionados um a um após as palavras que começam da esquerda.
- Se a palavra for maior que o tamanho do bloco, ela permanecerá sozinha em uma única linha (e excederá o tamanho do bloco).
- Se a saída contiver apenas uma palavra, ela será alinhada à esquerda.
- A última linha da saída deve ser alinhada à esquerda, com apenas um espaço entre as palavras. A última linha da saída deve terminar com a quebra de linha à direita.
A resposta, com o menor número de bytes após algum tempo, vence.
Se você precisar de informações adicionais, deixe um comentário.
Casos de teste
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, um segundo desafio para minha tag de tipografia que já foi excluída automaticamente.;))
—
Martin Ender
@ MartinBüttner Eu não sabia que essa tag existe.
—
Zereges
@ Vɪʜᴀɴ É necessário escrever um programa executável / interpretável inteiro.
—
Dennis19 /
Duplicar de Justificar um texto adicionando espaços .
—
pppery
Interessante @ppperry, por algum motivo, ele evitou minhas habilidades de busca
—
Zereges