在Python 3中构建递归函数

时间:2014-04-07 01:01:49

标签: string python-3.x recursion

对于intro comp sci lab我正在尝试构建一个递归函数,该函数计算字符串中给定字母的出现次数,而不使用内置方法或循环。我没有使用myStr.count就很难过。有人可以提供小费吗?我应该尝试检查myStr [0]的身份并返回0,如果是!!myStr [0]?

def count(letter, myStr, theLen):

#Code for def count 

def main():

    print ("The count of letter a is: ", count("a", "abacdadaad", 10))
    print ("The count of letter b is: ", count("b", "abacdadaad", 10))
    print ("The count of letter c is: ", count("c", "abacdadaad", 10))
    print ("The count of letter d is: ", count("d", "abacdadaad", 10))

main() 

1 个答案:

答案 0 :(得分:0)

通常,在递归写入内容时,主要问题是确定返回的条件是什么。显然,在对字符串中的字母进行计数时,就是在测试字符串的最后一个字符时。

你可以尝试:

def recursive(string, letter):

    if len(string) == 1 and string == letter:
        return 1;

    elif len(string) == 1:
        return 0;

    if string[0] == letter:
        count = 1 + recursive(string[1:], letter)

    else:
        count = recursive(string[1:], letter)

    return count