python - 编写一个名为 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
解决方案
您的代码中的问题是您正在切片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:])
推荐阅读
- cplex - Word generation in Cplex
- jquery - AngularJS ng-submit 在移动设备上不起作用
- amazon-web-services - 在 CentOS7 中 - 没有可用的软件包 aws-cfn-bootstrap
- javascript - 直接将数组作为参数传递时,数组对象属性为空
- angular - Angular : ngFor items and append a char for all items except the last item
- html - Bootstrap 4 Navbar Flex 打破品牌中心
- javascript - 使用 jest 测试嵌套异步函数
- python - opencv4nodejs如何计算拉普拉斯方差的模糊度
- python - 当 id 不在 iframe 上时如何从 page_source 获取 iframe 源
- email - 自动打印电子邮件