所以任务是,你应该写一个递归函数来计算字符串中“双”字母的数量,例如字符串“hmmm”返回1,字符串“hmmmm”返回2,字符串“abb”返回1。我的代码在这里:
def num_double_letters(astr):
if astr == "" or len(astr) == 1:
return 0
elif len(astr) == 2:
if astr[0] == astr[1]:
return 1 + num_double_letters(astr[1:])
else:
return 0 + num_double_letters(astr[1:])
elif astr[0] != astr[1]:
return 0 + num_double_letters(astr[1:])
elif astr[0] == astr[1] != astr[2]:
return 1 + num_double_letters(astr[1:])
elif astr[0] == astr[1] == astr[2]:
return 0 + num_double_letters(astr[1:])
我的问题是一个有4个相同字母的字符串=1,而它应该是=2。还有没有更干净的方法?在
我觉得你把事情弄得有点复杂。。。一旦字符串的长度是2,就没有必要再深入递归了,而且你想前进2,而不是1,当你找到一个双精度数,我认为你这样做。试试这个:
输出:
^{pr2}$您可以考虑以下更具代表性和简洁性的方法:
相关问题 更多 >
编程相关推荐