Pedoman
Tugas
Diberikan dua catatan, dimasukkan sebagai string atau daftar / array, menghitung berapa banyak semi-terpisah mereka (termasuk catatan itu sendiri), menghasilkan sebagai angka.
Penjelasan tentang semitone:
Semitone adalah satu langkah ke atas atau ke bawah keyboard. Contohnya adalah C to C #. Seperti yang Anda lihat di bawah, catatan C ada pada catatan putih dan C # adalah catatan hitam hanya satu di atasnya. Semitones adalah lompatan dari catatan hitam ke catatan putih berikutnya, atas atau bawah, kecuali untuk:
- B ke C
- C ke B
- E ke F
- F ke E
Contohnya
'A, C' -> 4
'G, G#' -> 2
'F#, B' -> 6
'Bb, Bb' -> 13
Aturan
- Jarak terbesar antara dua not adalah 13 semitone.
- Catatan yang dimasukkan kedua akan selalu berada di atas catatan yang dimasukkan pertama.
- Anda dapat mengambil input baik sebagai string, atau array / daftar. Jika Anda menganggapnya sebagai string, catatan akan dipisahkan dengan koma (mis.
String -> 'A, F'
,Array -> ['A', 'F']
). - Anda dapat mengasumsikan bahwa Anda akan selalu diberikan dua catatan yang valid.
- Benda tajam akan dilambangkan sebagai
#
dan flat akan dilambangkan sebagaib
- Kode Anda harus mendukung setara setara denganarmarmonik (misalnya, harus mendukung F # dan Gb)
- Kode Anda tidak perlu mendukung catatan yang diberi nama, tetapi dapat dinamai tanpa tajam atau datar (mis. Anda tidak perlu mendukung E #, atau Cb). Poin bonus jika kode Anda mendukungnya.
- Kode Anda tidak perlu mendukung benda tajam ganda atau apartemen ganda.
- Anda dapat mengasumsikan bahwa jika Anda mendapatkan kedua not yang sama, atau nada yang sama (misalnya 'Gb, Gb' atau 'A #, Bb'), not kedua tidak akan tepat satu oktaf di atas yang pertama.
- Ini adalah kode golf sehingga jawabannya dengan jumlah byte terkecil menang.
Cb
atau tidak E#
? Bagaimana dengan benda tajam ganda / flat?
(X, Y]
C to C # adalah 1 semitone dan C to C adalah 12 semitones.
G -> G#
karena mereka sama-sama termasuk.