De acordo com mim, um tornado se parece com isso:
########
#######
######
#####
####
###
##
#
Esse tornado começa com largura n
e, em cada linha seguinte, um caractere é removido da esquerda ou da direita, dependendo da entrada.
Entrada
A entrada será uma lista de algum tipo de dois valores exclusivos (uma sequência de dois caracteres exclusivos também funciona) e um número inteiro positivo opcional para indicar a largura inicial. Se o número inteiro opcional não for utilizado, a largura inicial será 1 maior que o comprimento da lista. Seja a largura inicial n
.
Como fazer um tornado
No meu exemplo, escolhi minha lista para conter 1
s e 0
s, embora você possa escolher dois valores constantes distintos ou uma sequência de dois caracteres constantes distintos.
A primeira linha será composta por n
caracteres que não sejam espaços em branco (você pode escolher qualquer caractere consistente; eu escolho #
no meu exemplo).
Em seguida, para cada número da lista, se o número for 0
, remova o caractere esquerdo e crie uma nova linha; se for um 1
, remova o caractere certo e crie uma nova linha.
Assim, o tornado acima é a saída para 8, [1, 0, 0, 0, 1, 0, 0]
.
Saída
A saída pode ser uma lista de cadeias, uma lista de listas de caracteres ou uma cadeia de linhas múltiplas. O espaço em branco à direita em cada linha é permitido e uma nova linha à direita no final é permitida.
Casos de teste
Esses casos de teste incluem a largura inicial e usam listas de 1, 0
.
5, [1,0,0,1]
#####
####
###
##
#
10, [1,0,0,1,0,1,0,0,1]
##########
#########
########
#######
######
#####
####
###
##
#
7, [1,1,1,1,1,1]
#######
######
#####
####
###
##
#
100,
[1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,0,0,1,0,0,1,1,0,1,1,1,1,0,1,0,1,1,0,0,1,0,1,1,0,0,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1,0,1,0,0,1,1,0,0,0,0,1]
Regras
- Aplicam-se brechas padrão
- O menor código em bytes vence! código-golfe
- O plano de fundo não precisa ser um espaço (esqueci de especificar isso anteriormente).
- Seu idioma precisa apenas suportar números (larguras) que ele possa manipular, mas se o seu intérprete tiver sido reescrito com um tamanho de número maior, ele deverá funcionar teoricamente.