我必须创建一个名为 countLetterString(char, str)
的函数,我需要在其中使用递归来查找给定字符在字符串中出现的次数。
到目前为止,我的代码看起来像这样。
def countLetterString(char, str):
if not str:
return 0
else:
return 1 + countLetterString(char, str[1:])
所有这一切都是计算字符串中有多少个字符,但我似乎无法弄清楚如何拆分字符串然后查看字符是否是字符拆分。
原文由 user123456789101112 发布,翻译遵循 CC BY-SA 4.0 许可协议
第一步是把这个问题分解成几个部分:
1.如何判断一个字符是否在字符串中?
如果递归执行此操作,则需要检查字符串的 第一个 字符。
2.如何比较两个字符?
Python 有一个
==
运算符来确定两个 事物 是否等价3. 知道字符串首字符是否匹配后怎么办?
您需要继续处理字符串的其余部分,但要以某种方式维护您目前看到的字符数。这通常使用 for 循环非常容易,因为您只需在其外部声明一个变量,但您必须递归地将程序 状态 传递给每个新函数调用。
这是一个递归计算字符串长度的示例:
从这个例子中,看看你是否能完成你的问题。你的将有一个额外的步骤。
4. 什么时候停止递归?
这在处理递归时 总是 一个问题,我什么时候需要停止回忆自己。看看你能不能解决这个问题。
编辑:
not s
将测试 s 是否为空,因为在 Python 中空字符串""
计算为False
;和not False == True