首页 > 解决方案 > 编写一个名为 freq_of(letter, text) 的递归函数,用于查找字符串中指定字母的出现次数

问题描述

编写一个名为 freq_of(letter, text) 的递归函数,用于查找字符串中指定字母的出现次数。

这个函数必须是递归的;我可能不允许使用循环!我的问题是我不能在例外结果中得到“2”。非常感谢。

def freq_of(letter, text):
    if not letter:
        return 0
    elif letter[0]==text:
        return 1+freq_of(letter[1:],text)
    else:
        return freq_of(letter[1:],text)

Test:
text = 'welcome'
letter = 'e'
result = freq_of(letter, text)
print(f'{text} : {result} {letter}')

Except:
welcome : 2 e

标签: python

解决方案


您的代码中的问题是您正在切片letter而不是text. 试试这个:

def freq_of(letter, text):
    if text == "":
        return 0
    elif letter == text[0]:
        return 1 + freq_of(letter, text[1:])
    else:
        return freq_of(letter, text[1:])

推荐阅读