String Stairs
Isenção de responsabilidade: Este é o primeiro desafio que proponho. Todo e qualquer feedback é bem-vindo. Se for uma duplicata, indique-a.
Aqui está um link para a postagem da sandbox.
Objetivo
O objetivo deste desafio é, dada uma sequência e um número inteiro, imprimi-la em blocos do tamanho desse número inteiro. Se uma palavra tiver mais caracteres que o tamanho de um bloco, imprima-a em um padrão descendente de "escada".
Regras
- O "padrão de escada" mencionado acima significa que, para cada bloco de uma mesma palavra, esse bloco deve começar exatamente onde termina o bloco acima. Verifique os casos de teste (ou pergunte) se tiver alguma dúvida.
- Se uma palavra é quebrada em vários blocos, a palavra a seguir deve ser impressa com um número adequado de espaços, ou seja, deve ser separada do bloco mais baixo da palavra anterior por exatamente um espaço em branco. Verifique os casos de teste (ou peça) para esclarecimentos.
- Você pode assumir que a sequência de entrada consistirá apenas em caracteres ASCII imprimíveis. Além disso, ele não terá vários espaços em branco seguidos.
- Você também pode assumir que o número inteiro sempre estará no intervalo [1, + ∞).
- Espaços em branco à direita ou novas linhas são permitidos.
- Você pode usar qualquer método razoável para E / S.
- Aplicam-se brechas padrão .
- Este é o código-golfe , e o código mais curto (em bytes, por idioma) vence. Depois de uma semana (mais ou menos), aceitarei a resposta mais curta geral.
Casos de teste
(String, Integer) => (Output)
"This is a large string", 3 => Thi is a lar str
s ge ing
"This is an even larger string!", 2 => Th is an ev la st
is en rg ri
er ng
!
"Ooooh dear, what a big string you have!", 3
=> Ooo dea wha a big str you hav
oh r, t ing e!
"Staphylococcus saprophyticus", 4 => Stap sapr
hylo ophy
cocc ticu
us s
"I hope you find this challenge interesting", 2
=> I ho yo fi th ch in
pe u nd is al te
le re
ng st
e in
g
"Well, this test case looks kinda pointless now doesn't it?", 15
=> Well, this test case looks kinda pointless now doesn't it?
"This one looks a lot more interesting!", 1 => T o l a l m i
h n o o o n
i e o t r t
s k e e
s r
e
s
t
i
n
g
!
"Keep in mind, people: 'Punctuation! Does! Matter!'", 2
=> Ke in mi pe 'P Do Ma
ep nd op un es tt
, le ct ! er
: ua !'
ti
on
!
Respostas:
Carvão , 22 bytes
Experimente online! Link é a versão detalhada do código. Explicação:
* Mais precisamente, "vá para o início da próxima linha duas vezes, mas como se a tela fosse girada". Edit: Entre este desafio ser definido e esta resposta ser aceita, o carvão vegetal realmente adquiriu um meio de dividir uma string em pares de caracteres, reduzindo o código em 16 bytes:
F⪪θ «↑⸿⸿F⪪ιIη«κ↙
Experimente online! Link é a versão detalhada do código. Explicação:fonte
SOGL V0.12 ,
282726 bytesExperimente aqui!
Eu implementei
‰
enquanto fazia isso, mas a documentação já existia antes.Explicação:
fonte
Javascript ES6,
187183174166163148145143141140138 bytesfonte
<"!"
vez de==" "
.C #, 200 bytes
Onde a cadeia é especificada por ie o tamanho é especificado por s .
Por exemplo
Basicamente, a primeira parte do Regex.Split usa espaços em branco para dividir a frase em palavras, e o Regex.Matches divide cada palavra em partes especificadas por s . O pedaço é gravado na posição do cursor (x, y), em que Y é definido como 0 para cada nova palavra ex é incrementado em 2 para o primeiro pedaço de uma palavra e subsequentemente (s-1) para cada pedaço.
x inicia sua vida útil em -2 para garantir que seu primeiro uso seja definido como 0.
Não sou conhecedor o suficiente em trivialidades em C # para poder diminuí-lo, mas suspeito que provavelmente possa ser.
fonte
Python 2 ,
203199 bytesExperimente online!
fonte
' '*(i/l*(l-1))
pode seri/l*~-l*' '
.Perl 5, 59 bytes
Código de 55 bytes + 4 para
-ai
.Nota: os
\x1b
sãoESC
caracteres literais , mas escaparam aqui para facilitar a copiar e colar.Este script utiliza seqüências de escape ANSI e requer entrada através do
-i
sinalizador que não é padrão. Se um desses itens não for aceitável, entre em contato e atualizarei.Execuções de exemplo
fonte