Buat fungsi terpendek untuk mengonversi string angka Romawi menjadi bilangan bulat.
Aturan untuk setiap huruf dapat ditemukan di halaman Wikipedia . Huruf di atas 1.000 akan memiliki tanda kurung di sekitar mereka untuk memberi sinyal nilai yang lebih tinggi.
Persyaratan:
- Harus mengonversi angka Romawi 1 hingga 500.000
- Harus selesai dalam waktu kurang dari satu menit
- Tidak menggunakan fungsi bawaan yang dapat memberikan keuntungan (Mis: Fungsi yang mengubah angka Romawi menjadi bilangan bulat)
- Apakah fungsi
Fungsi tidak perlu mendukung pecahan. Setiap input yang tidak valid harus mengembalikan angka 0.
Fungsi terpendek menang. Dalam kasus seri, yang memiliki suara terbanyak menang.
Uji Kasus
Memasukkan
III
Keluaran
3
Memasukkan
IIII
Keluaran
0
Memasukkan
XVI
Keluaran
16
Memasukkan
(C)(D)(L)MMI
Keluaran
452001
code-golf
math
function
roman-numerals
Kevin Brown
sumber
sumber
(C)(D)(L)MMI
akan menjadi 452.001. Bagaimana Anda mendapatkan nilai Anda? Selain itu, apakah ini perlu mendukung formulir "tidak patut" (misalnya,IC
bukanXCIX
)?Jawaban:
C ++:
914855 karakterItu bisa dikompresi lebih lanjut.
Format yang sedikit lebih baik: 1582 char
sumber
Javascript, 317 karakter
Penjelasan:
Tanpa deteksi kesalahan hanya 180 karakter
Ini bekerja dengan cara yang sama, tetapi di sini adalah format yang lebih baik:
sumber