Python 递归计数对

Python 递归计数对,python,recursion,python-3.6,Python,Recursion,Python 3.6,编写一个名为countpairs的递归函数,该函数有一个参数“s”,一个字符串。该功能将 计算字符串中重复字符对的数目。 字符对不能重叠,例如,“aaa”计数为一对“a”,后跟一个“a”。 调用包含函数“pairs\u mod.py”的模块 已经一个多星期了,我假设这个作业已经到期了,可以提供完整的答案。让我们使用Python 3解包,在不使用难看的数字索引的情况下完成这项工作: def countpairs(string): if string: first, *sec

编写一个名为countpairs的递归函数,该函数有一个参数“s”,一个字符串。该功能将 计算字符串中重复字符对的数目。 字符对不能重叠,例如,“aaa”计数为一对“a”,后跟一个“a”。
调用包含函数“pairs\u mod.py”的模块

已经一个多星期了,我假设这个作业已经到期了,可以提供完整的答案。让我们使用Python 3解包,在不使用难看的数字索引的情况下完成这项工作:

def countpairs(string):
    if string:
        first, *second_on = string

        if second_on:
            second, *third_on = second_on

            if first == second:
                return 1 + countpairs(third_on)

            return countpairs(second_on)  # outdent a level and still works!  Work out why.

    return 0

for word in ['', 'I', 'oo', 'aaa', 'zzzz', 'bookkeeper']:
    print(word, ":", countpairs(word))
输出

> python3 test.py
 : 0
I : 0
oo : 1
aaa : 1
zzzz : 2
bookkeeper : 3
> 

因此,这不是编码服务。展示一些您的工作,您可能会得到一些帮助。您的代码可能应该查看字符串的前两个字符,然后在该字符串的某个子字符串上调用自己。