Desafio:
Entrada:
Você recebe duas entradas:
- Uma sequência contendo apenas ASCII imprimível (excluindo espaços, tabulações ou novas linhas)
- Um caractere ASCII imprimível
Saída:
A primeira linha conterá a entrada de string. Toda i
primeira ocorrência desse módulo se moverá na direção sudeste; toda i
ocorrência de módulo-3 segundos se moverá na direção sul; e cada i
terceira ocorrência de módulo 3 se moverá na direção sudoeste. Você continuará até que os caracteres estejam na posição inicial inicial novamente (o que significa que ele se agrupará de um lado para o outro, se necessário) e, em seguida, imprimirá a última linha com a entrada de sequência novamente para Termine isso. (Observe que todos os casos de teste terminam na entrada inicial após o máximo de length(input)
linhas, incluindo a linha que contém a entrada à direita. No entanto, pode ser mais cedo, como visto no primeiro caso de teste abaixo, com um comprimento de 14, mas terminando após 9.)
Tudo isso pode ser bastante vago, então aqui está um exemplo:
Caso de teste 1:
Entrada de string: Entrada de "This_is_a_test"
caractere:'s'
Saída:
This_is_a_test
s s s
ss s
s s
sss
sss
s s
ss s
s s s
This_is_a_test
Aqui está o mesmo caso de teste com os caminhos coloridos dos três s
:
onde o primeiro 's'
segue o caminho verde na direção sudeste; o segundo 's'
segue o caminho amarelo na direção sul; e o terceiro 's'
segue o caminho azul claro na direção sudoeste. (Se houvesse um quarto 's'
, seguiria na direção sudeste novamente, o que pode ser visto em alguns dos outros casos de teste abaixo.)
Regras do desafio:
- As entradas conterão apenas ASCII imprimível (excluindo espaços, tabulações e novas linhas)
- Os formatos de E / S são flexíveis. Pode ser uma cadeia de caracteres delimitada por nova linha, matriz de caracteres, etc. Sua chamada.
- É possível que o caractere fornecido não esteja presente na string; nesse caso, você pode emitir a string de entrada uma ou duas vezes (ou seja,
"test", 'a'
pode ter um destes como saída possível:"test\ntest"
/"test"
). - Espaços principais são obrigatórios; espaços à direita são opcionais. Uma ou várias novas linhas iniciais / finais são permitidas.
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta, para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código.
- Além disso, adicione uma explicação, se necessário.
Casos de teste / mais exemplos:
Caso de teste 2:
Entrada de string: Entrada de "abcabcabcabcabc"
caractere:'b'
Saída:
abcabcabcabcabc
b b b b b
bbb bb
b b
bbb bb
b b b b b
b b b b
b b b b b
bb b bb
b b b
bb bbb
b b bbb
b b b b
b bb bb
b b bb b
abcabcabcabcabc
Aqui está o mesmo caso de teste com os caminhos coloridos dos cinco a
:
Caso de teste 3:
Entrada de string: Entrada de "only_two_paths?"
caractere:'o'
Saída:
only_two_paths?
o o
o o
o o
o o
o o
oo
o
oo
o o
o o
o o
o o
o o
o o
only_two_paths?
Aqui está o mesmo caso de teste com os caminhos coloridos dos dois o
:
Caso de teste 4:
Entrada de string: "lollollollollol"
entrada de caracteres:'l'
Saída:
lollollollollol
lll ll ll
ll ll ll
l ll ll ll ll
lll l ll l ll
llllll ll ll
l l ll ll
ll lll ll
l l l lll ll l
ll l ll l l
l l l l llll l
ll lll lll
l l l ll
ll lll lllll
l l l ll l ll
lollollollollol
Aqui está o mesmo caso de teste com os caminhos coloridos dos dez l
:
Caso de teste 5:
Entrada de string: "AbCdEeDcBaAbCdEeDcBa_CCCCC"
entrada de caracteres:'C'
Saída:
AbCdEeDcBaAbCdEeDcBa_CCCCC
C C C C C
C C C C CCC
C C C C C C C
C C C C C C C
C C C C C C C
C C C C C C C
C C C C C C C
C C C CC C C
C C CC C C
C C CC C C
C C CC C
CC CC C C
CC CC C C
C C CC C C
C C CC C C C
C C C C C C
C C CC C C C
C C C C C C C
C C C C C C C
C C C C C CC
C C C C C C
C C C C CCC
C C C CCCC
C C C C
C C CCCCC
AbCdEeDcBaAbCdEeDcBa_CCCCC
Aqui está o mesmo caso de teste com os caminhos coloridos dos sete C
:
Caso de teste 6:
Entrada de string: "XyX"
entrada de caracteres:'X'
Saída:
XyX
XX
X
XyX
Aqui está o mesmo caso de teste com os caminhos coloridos dos dois X
:
Caso de teste 7:
Entrada de string: "aaaa"
entrada de caracteres:'a'
Saída:
aaaa
aa
aaa
aaa
aaaa
Aqui está o mesmo caso de teste com os caminhos coloridos dos quatro a
:
length(input)
tudo coincide novamente, mas pode ser mais cedo, como o primeiro caso de teste prova. Mas parece que você está realmente certo sobre o múltiplo de 3 partes (embora eu não tenha 100% de certeza).