दिशा-निर्देश
कार्य
दो नोटों को देखते हुए, स्ट्रिंग्स या सूचियों / सरणियों के रूप में इनपुट किया गया, गणना करें कि वे कितने सेमिटोन हैं, जो एक संख्या के रूप में आउटपुट होते हैं (स्वयं नोटों के समावेशी)।
एक अर्धविराम की व्याख्या:
कीबोर्ड के ऊपर या नीचे एक सेमीटोन होता है। एक उदाहरण C से C # है। जैसा कि आप नोट के नीचे देख सकते हैं कि C एक सफेद नोट पर है और C # काला नोट उसके ठीक ऊपर है। सिमिटोन एक काले नोट से अगले सफेद नोट तक, ऊपर या नीचे हैं, इसके अलावा:
- B से C
- C से B
- ई से एफ
- एफ से ई
उदाहरण
'A, C' -> 4
'G, G#' -> 2
'F#, B' -> 6
'Bb, Bb' -> 13
नियम
- दो नोटों के बीच सबसे बड़ी दूरी 13 सेमीटोन है।
- दूसरा इनपुट वाला नोट हमेशा पहले इनपुट वाले नोट के ऊपर होगा।
- आप इनपुट को एक स्ट्रिंग, या एक सरणी / सूची के रूप में ले सकते हैं। यदि आप इसे एक स्ट्रिंग के रूप में लेते हैं, तो नोट अल्पविराम से अलग हो जाएंगे (जैसे
String -> 'A, F'
,Array -> ['A', 'F']
)। - आप मान सकते हैं कि आपको हमेशा दो वैध नोट दिए जाएंगे।
- शार्प के रूप में चिह्नित किए जाएंगे
#
और फ्लैट्स के रूप में चिह्नित किए जाएंगेb
- आपके कोड को एन्होमोनिक समकक्षों का समर्थन करना चाहिए (जैसे कि इसे F # और Gb दोनों का समर्थन करना चाहिए)
- आपके कोड को उन नोटों का समर्थन करने की आवश्यकता नहीं है, जिनके साथ नाम हैं, लेकिन एक तेज या फ्लैट के बिना नाम दिया जा सकता है (यानी आपको E #, या Cb का समर्थन करने की आवश्यकता नहीं है)। बोनस अंक यदि आपका कोड हालांकि इसका समर्थन करता है।
- आपके कोड को डबल शार्प या डबल फ़्लैट का समर्थन करने की आवश्यकता नहीं है।
- आप मान सकते हैं कि यदि आपको एक ही नोट, या समान पिच (जैसे 'Gb, Gb' या 'A #, Bb') दोनों मिलते हैं, तो दूसरा पहले के मुकाबले बिल्कुल एक सप्तक नहीं होगा।
- यह कोड गोल्फ है इसलिए कम से कम बाइट्स जीत के साथ जवाब।
Cb
या E#
? डबल शार्प / फ्लैट्स के बारे में क्या?
(X, Y]
इसलिए C को C # 1 सेमीटोन और C को C को 12 सेमीिटोन कहा जाता है।
G -> G#
क्योंकि वे दोनों शामिल हैं।