首页 > 解决方案 > 试图制作一个 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”中。

标签: pythonpython-3.xrecursionsubstring

解决方案


False问题是如果第一个字符不匹配,您将返回。如果匹配,则需要返回True,如果匹配,则需要递归;False如果你到达字符串的末尾,最终你会返回。

def q5(s,c):
  if s == "": 
    return False
  elif c == s[0]:
    return True
  else:
    return q5(s[1:], c)

推荐阅读