Dado um fragmento da saída de buzz fizz com todos os números removidos, preencha os números corretos com os valores mais baixos possíveis, de modo que o snippet de buzz fizz esteja correto. Para os propósitos deste desafio, fizz
e buzz
tenha seus valores usuais de 3 e 5, respectivamente.
Se a entrada é uma sequência inválida de fizz
, buzz
e as linhas em branco, em seguida, em vez de saída apenas zzubzzif
(com ou sem várias linhas).
A entrada e a saída podem ser linhas separadas por nova linha ou qualquer formato de matriz de strings que seja conveniente para o seu idioma.
Você pode ignorar ou fazer o que quiser com letras maiúsculas.
Você terá que escolher para lidar com um ou mais dos seguintes: fizzbuzz
, fizz buzz
, buzz fizz
, etc, mas você deve escolher pelo menos um desses formatos.
Pode-se presumir que todas as entradas é uma sequência de fizz
, buzz
e esvaziar linhas.
Exemplos
Entrada:efervescerSaída:
2
fizz
4
Entrada:
zumbido efervescerSaída:
buzz
fizz
7
Entrada:
fizzbuzzSaída:
13
14
fizzbuzz
16
17
Entrada:
Saída:
1
Entrada:
efervescer efervescerSaída:
zzubzzif
Entrada:
Saída:
zzubzzif
Respostas:
Java, 205 bytes
Pega a
String[]
como entrada e retorna aString
.Código executável expandido:
fonte
C #, 212 bytes
Eu fiz o impensável. Eu usei uma
goto
declaração para sair de um loop!Isso tira proveito do fato de que a sequência deve começar dentro dos 15 primeiros elementos.
Recuo e novas linhas para facilitar a leitura:
fonte
break
palavra - chave?goto
saltos para fora do loop interno e sobre o restante da lógica do loop externo.goto
em C #! Nem sabia que C # tinha!CJam, 72 bytes
O programa será encerrado com um erro se for necessário imprimir o zzubzzif .
Usando o interpretador Java, o STDERR pode ser fechado para suprimir uma eventual mensagem de erro. Se você tentar o programa no intérprete CJam , ignore todas as saídas após a primeira linha.
Como funciona
fonte
Perl, 140 bytes
Explicação
@a
é a matriz de linhas de entradawhile
loop,@s
tem a sequência fizz-buzz gerada@x
é o mesmo que@s
com números substituídos por cadeias vazias e uma nova linha anexada a cada elemento (para combinar com@a
)$c
é um contador de 1 a 15@x
se tornar o mesmo da entrada@a
@s
ou zzufzzib, com base$c
em seus limites ou nãofonte
Python, 176 bytes
Provavelmente poderia fazer muito melhor, mas primeira tentativa no Golf. Dicas apreciadas :)
Encolhido
Original
fonte
#Java, 205 Bytes
como a primeira linha da sua resposta.'fizz'*(n%3<1)+'buzz'*(n%5<1)
Você pode remover as atribuições f e b.(f+b)[::-1]
pode ser uma chamada para um conhecido 'fizzbuzz', por exemplog(15)[::-1]
.g(0)
também trabalha para salvar outro byte :)..] for
pode ser escrito..]for
. Aplicando este truque, você tem 177 caracteres['','fizz','']
Há também mais alguns a serem removidos se você comparar a lista de entrada versus uma lista comp em vez de usar all ()if a==[g(i + x) for x in r(l)]