Dado un fragmento de salida de fizz buzz con todos los números eliminados, complete los números correctos con los valores más bajos posibles de modo que el fragmento de fizz buzz sea correcto. A los efectos de este desafío, fizz
y buzz
tienen sus valores habituales de 3 y 5, respectivamente.
Si la entrada es una secuencia no válida de fizz
, buzz
y líneas vacías, a continuación, en lugar de salida solo zzubzzif
(con o sin saltos de línea).
La entrada y la salida pueden ser líneas separadas por una nueva línea, o cualquier formato de matriz de cadenas que sea conveniente para su idioma.
Puede ignorar o hacer lo que quiera con mayúsculas.
Usted tendrá que elegir para manejar uno o más de los siguientes: fizzbuzz
, fizz buzz
, buzz fizz
, etc, pero debe elegir al menos uno de estos formatos.
Usted puede asumir que todas las entradas es de alguna secuencia fizz
, buzz
y vaciar las líneas.
Ejemplos
Entrada:efervescenciaSalida:
2
fizz
4
Entrada:
zumbido efervescenciaSalida:
buzz
fizz
7
Entrada:
fizzbuzzSalida:
13
14
fizzbuzz
16
17
Entrada:
Salida:
1
Entrada:
efervescencia efervescenciaSalida:
zzubzzif
Entrada:
Salida:
zzubzzif
Respuestas:
Java, 205 bytes
Toma a
String[]
como entrada y devuelve aString
.Código ampliado y ejecutable:
fuente
C #, 212 bytes
Hice lo impensable. ¡Usé una
goto
declaración para salir de un bucle!Esto aprovecha el hecho de que la secuencia debe comenzar dentro de los primeros 15 elementos.
Sangría y nuevas líneas de legibilidad:
fuente
break
palabra clave?goto
salta del bucle interno y sobre el resto de la lógica del bucle externo.goto
C #! ¡Ni siquiera sabía que C # lo tenía!CJam, 72 bytes
El programa saldrá con un error si tiene que imprimir zzubzzif .
Con el intérprete de Java, STDERR puede cerrarse para suprimir un mensaje de error eventual. Si prueba el programa en el intérprete de CJam , ignore todos los resultados después de la primera línea.
Cómo funciona
fuente
Perl, 140 bytes
Explicación
@a
es la matriz de líneas de entradawhile
bucle,@s
tiene la secuencia generada de fizz-buzz@x
es lo mismo@s
pero con números reemplazados por cadenas vacías y una nueva línea añadida a cada elemento (para que coincida con@a
)$c
es un contador de 1 a 15@x
vuelve igual que la entrada@a
@s
o zzufzzib en función de si$c
estaba en sus límites o nofuente
Python, 176 bytes
Probablemente podría hacerlo mucho mejor, pero primer intento de golf. Consejos apreciados :)
Encogido
Original
fuente
#Java, 205 Bytes
como la primera línea de tu respuesta.'fizz'*(n%3<1)+'buzz'*(n%5<1)
Puede eliminar las asignaciones f y b entonces.(f+b)[::-1]
entonces puede ser una llamada a un 'fizzbuzz' conocido, por ejemplog(15)[::-1]
.g(0)
también funciona para guardar otro byte :)..] for
se puede escribir..]for
. Aplicando este truco, obtienes 177 caracteres['','fizz','']
También hay algunos más que eliminar si compara la lista de entrada frente a una lista de compilación en lugar de usar all ()if a==[g(i + x) for x in r(l)]