Diberikan potongan output buzz fizz dengan semua angka dihapus, isi angka yang benar dengan nilai serendah mungkin sehingga potongan buzz fizz benar. Untuk keperluan tantangan ini, fizz
dan masing buzz
-masing memiliki nilai 3 dan 5.
Jika input adalah urutan yang tidak valid dari fizz
, buzz
dan mengosongkan baris, maka sebaliknya output saja zzubzzif
(dengan atau tanpa baris baru).
Input dan output mungkin garis yang dipisahkan baris baru, atau format array-of-string apa pun yang nyaman untuk bahasa Anda.
Anda dapat mengabaikan atau melakukan apa pun yang Anda suka dengan huruf besar.
Anda akan perlu memilih untuk menangani satu atau lebih dari ini: fizzbuzz
, fizz buzz
, buzz fizz
, dll, tetapi Anda harus memilih setidaknya satu dari format ini.
Anda dapat mengasumsikan bahwa semua input adalah beberapa urutan fizz
, buzz
dan baris kosong.
Contohnya
Memasukkan:mendesisKeluaran:
2
fizz
4
Memasukkan:
berdengung mendesisKeluaran:
buzz
fizz
7
Memasukkan:
fizzbuzzKeluaran:
13
14
fizzbuzz
16
17
Memasukkan:
Keluaran:
1
Memasukkan:
mendesis mendesisKeluaran:
zzubzzif
Memasukkan:
Keluaran:
zzubzzif
Jawaban:
Java, 205 byte
Mengambil
String[]
input as dan mengembalikan aString
.Kode diperluas, dapat dijalankan:
sumber
C #, 212 byte
Saya melakukan yang tidak terpikirkan. Saya menggunakan
goto
pernyataan untuk keluar dari lingkaran!Ini mengambil keuntungan dari fakta bahwa urutan harus dimulai dalam 15 elemen pertama.
Lekukan dan baris baru agar mudah dibaca:
sumber
break
kata kunci?goto
melompat keluar dari loop dalam dan melewati sisa logika loop luar.goto
C #! Bahkan tidak tahu C # memilikinya!CJam, 72 byte
Program akan keluar dengan kesalahan jika harus mencetak zzubzzif .
Menggunakan penerjemah Java, STDERR dapat ditutup untuk menekan pesan kesalahan akhirnya. Jika Anda mencoba program dalam juru bahasa CJam , abaikan semua output setelah baris pertama.
Bagaimana itu bekerja
sumber
Perl, 140 byte
Penjelasan
@a
adalah larik jalur inputwhile
lingkaran,@s
memiliki urutan buzz-buzz yang dihasilkan@x
sama seperti@s
tetapi dengan angka diganti dengan string kosong dan baris baru ditambahkan ke setiap elemen (untuk mencocokkan dengan@a
)$c
adalah penghitung dari 1 hingga 15@x
menjadi sama dengan input@a
@s
atau zzufzzib berdasarkan pada apakah$c
dalam batasnya atau tidaksumber
Python, 176 Bytes
Mungkin bisa melakukan jauh lebih baik, tetapi upaya pertama di Golf. Tips dihargai :)
Menyusut
Asli
sumber
#Java, 205 Bytes
sebagai baris pertama jawaban Anda.'fizz'*(n%3<1)+'buzz'*(n%5<1)
Anda dapat menghapus tugas f dan b kemudian.(f+b)[::-1]
kemudian bisa menjadi panggilan ke misalnya 'fizzbuzz' yang dikenalg(15)[::-1]
.g(0)
juga berfungsi untuk menyimpan byte lain :)..] for
dapat ditulis..]for
. Menerapkan trik ini, Anda mendapatkan 177 karakter['','fizz','']
Ada juga beberapa lagi yang harus dihapus jika Anda membandingkan daftar input dengan daftar comp daripada menggunakan semua ()if a==[g(i + x) for x in r(l)]