Hướng dẫn
Bài tập
Đưa ra hai ghi chú, được nhập dưới dạng chuỗi hoặc danh sách / mảng, tính toán chúng cách nhau bao nhiêu nửa cung (bao gồm các ghi chú), xuất ra dưới dạng số.
Giải thích về một nửa cung:
Một nửa cung là một bước lên hoặc xuống bàn phím. Một ví dụ là C đến C #. Như bạn có thể thấy bên dưới ghi chú C nằm trên một ghi chú màu trắng và C # là ghi chú màu đen chỉ một ở trên nó. Semitones là những bước nhảy từ nốt đen sang nốt trắng tiếp theo, lên hoặc xuống, ngoại trừ:
- B đến C
- C đến B
- E đến F
- Từ F đến E
Ví dụ
'A, C' -> 4
'G, G#' -> 2
'F#, B' -> 6
'Bb, Bb' -> 13
Quy tắc
- Khoảng cách lớn nhất giữa hai nốt nhạc là 13 nửa cung.
- Ghi chú đầu vào thứ hai sẽ luôn ở trên ghi chú đầu vào đầu tiên.
- Bạn có thể lấy đầu vào là một chuỗi hoặc một mảng / danh sách. Nếu bạn mang nó như là một chuỗi, các ghi chú sẽ bằng dấu phẩy (ví dụ
String -> 'A, F'
,Array -> ['A', 'F']
). - Bạn có thể cho rằng bạn sẽ luôn được cung cấp hai ghi chú hợp lệ.
- Sharps sẽ được ký hiệu là
#
và căn hộ sẽ được ký hiệu làb
- Mã của bạn phải hỗ trợ tương đương nâng cao (ví dụ: Nó phải hỗ trợ cả F # và Gb)
- Mã của bạn không cần hỗ trợ các ghi chú được đặt tên, nhưng có thể được đặt tên mà không có sắc nét hoặc bằng phẳng (tức là Bạn không cần hỗ trợ E # hoặc Cb). Điểm thưởng nếu mã của bạn không hỗ trợ nó mặc dù.
- Mã của bạn không cần phải hỗ trợ gấp đôi hoặc căn hộ đôi.
- Bạn có thể giả sử rằng nếu bạn nhận được cả hai nốt giống nhau hoặc cùng một nốt (ví dụ: 'Gb, Gb' hoặc 'A #, Bb'), thì nốt thứ hai sẽ không chính xác hơn một quãng tám so với nốt đầu tiên.
- Đây là mã golf nên câu trả lời có số byte ít nhất sẽ thắng.
Cb
hay E#
? Điều gì về sắc nét gấp đôi / căn hộ?
(X, Y]
vậy C đến C # là 1 nửa cung và C đến C là 12 nửa cung.
G -> G#
vì cả hai đều được bao gồm.