python - 试图制作一个 python 递归函数来检查一个字符是否在给定的字符串中但是我没有
问题描述
def q5(s,c):
if s == "":
return s
elif c != s[0]:
return False
else:
return True
return q5(s[1:], c)
将字符串 s 和单字符串 c 作为输入,并使用递归来确定 s 是否包含字符 c,如果包含则返回 True,否则返回 False。我正在使用递归来一次处理 s 一个字符并确定 c 是否包含在 s 中。
Args: s(str): 输入字符串, c(str): 单个字符
我在执行此操作时遇到问题,当我执行 q5("HI", "H") 时它返回 true,因为 "H" 在 "HI" 中,但是当我执行 q5("HI", "I") 时它返回 false,即使“I”也在字符串“HI”中。
解决方案
False
问题是如果第一个字符不匹配,您将返回。如果匹配,则需要返回True
,如果不匹配,则需要递归;False
如果你到达字符串的末尾,最终你会返回。
def q5(s,c):
if s == "":
return False
elif c == s[0]:
return True
else:
return q5(s[1:], c)
推荐阅读
- github - VS2019 16.3 无法卸载 GitHub 扩展
- shell - 如何在目录及其子目录上递归使用 tail -f?
- php - 无法在 PHP 中更新数据透视表
- python-2.7 - 如何在 python 2.7 中读取非 ascii 字符
- laravel - Laravel Passport 的 Laravel Dusk 身份验证问题
- javascript - 鼠标单击时字符不会移动到正确的目的地/错误的角度 - html画布
- unity3d - Unity 3D 在全新安装时出现布局错误
- c++ - 有没有更好的方法来使用比特流来解码文件格式?
- java - 当源和目标元素不在同一页面上时如何在 Selenium 中拖放
- docker - 使用脚本文件在 Windows 10 上删除 Docker