11
半音数
ガイドライン 仕事 文字列またはリスト/配列として入力された2つのノートが与えられた場合、それらが離れている半音の数(ノート自体を含む)を計算し、数値として出力します。 半音の説明: 半音は、キーボードを1段上げまたは下げます。例は、CからC#です。以下に示すように、音符Cは白い音符の上にあり、C#はその1つ上の黒い音符です。半音は、次の場合を除き、黒の音符から次の白の音符に上下にジャンプします。 BからC CからB EからF FからE 例 'A, C' -> 4 'G, G#' -> 2 'F#, B' -> 6 'Bb, Bb' -> 13 ルール 2つのノート間の最大距離は13半音です。 2番目に入力されたノートは常に最初に入力されたノートの上になります。 入力は、文字列または配列/リストとして取得できます。あなたは文字列としてそれを取る場合は、ノートがなり、カンマ区切り(例えばString -> 'A, F'、Array -> ['A', 'F'])。 常に2つの有効なメモが与えられると仮定できます。 シャープはと表示され#、フラットはと表示されますb コードは調和的な同等物をサポートする必要があります(例:F#とGbの両方をサポートする必要があります) コードは、名前の付いたメモをサポートする必要はありませんが、シャープまたはフラットなしで名前を付けることができます(つまり、E#やCbをサポートする必要はありません)。ただし、コードでサポートされている場合はボーナスポイントです。 コードでダブルシャープまたはダブルフラットをサポートする必要はありません。 同じ音符または同じ音高(たとえば、「Gb、Gb」または「A#、Bb」)の両方を取得した場合、2番目の音は最初の音よりも正確に1オクターブ上ではないと想定できます。 これはコードゴルフであるため、バイト数が最も少ない答えが優先されます。