📅  最后修改于: 2023-12-03 14:56:54.845000             🧑  作者: Mango
本程序用于计算给定琴弦中反双音子弦的数量。反双音子弦是指在同一弦中同时按下两个相邻的音符,使得其中一个发出的是另一个的半音或全音变化。例如,在第五弦上同时按下第二格和第三格,就会产生一个反双音子弦。
输入为一个只包含数字的字符串,代表着琴弦上的按弦位置。例如,字符串 "345320" 代表在第一弦到第六弦上,按下了第三格、第四格、第五格、第三格、第二格和第一格。
输出为一个整数,表示给定琴弦中反双音子弦的数量。
from typing import List
def count_reverse_pairs(chord: str) -> int:
"""
统计给定琴弦中反双音子弦的数量
:param chord: 琴弦上的按弦位置,形如"345320"
:return: 反双音子弦的数量
"""
count = 0
for i in range(len(chord) - 1):
if abs(int(chord[i + 1]) - int(chord[i])) == 1:
count += 1
return count
chord = "344575543"
3
在这个琴弦上,有三个反双音子弦,分别是在第一弦上按下第三格和第四格,第二弦上按下第六格和第七格,第五弦上按下第四格和第五格。