这里是我试图环绕我的头问题:唔明二分法搜索和递归
我们可以使用二分法搜索的理念,以确定是否一个字符 是一个字符串,那么长因为字符串按字母顺序排序。
首先,根据您要查找的字符 测试字符串的中间字符(“测试字符”)。如果他们是一样的,我们 完成 - 我们找到了我们正在寻找的角色!
如果它们不相同,请检查测试字符是否比中间字符“ ”小。如果是这样,我们只需要考虑字符串的下半部分 ;否则,我们只考虑字符串的上半部分。 (请注意,您可以使用Python的<功能比较字符)。
实现函数伊辛(字符,而aStr)的递归实现上述 想法来测试是否char是在而aStr。 char将是一个单一的 字符,而aStr将是一个按字母顺序排列的字符串。 函数应该返回一个布尔值。
当您设计功能时,请仔细考虑基底 应该是什么。
这是我试过的代码。我遇到了错误,但我在理解如何解决这个问题的基础知识方面落伍了。就落伍
def isIn(char, aStr):
'''
char: a single character
aStr: an alphabetized string
returns: True if char is in aStr; False otherwise
'''
# Your code here
middle_char = len(aStr)/2
if char == middle_char:
True
elif char == "" or char == 1:
False
elif char < aStr[:middle_char]:
return isIn(char,aStr(middle_char)
else:
return isIn(char, aStr(middle_char))
欢迎来到StackOverflow。请阅读并遵守帮助文档中的发布准则。 [最小,完整,可验证的示例](http://stackoverflow.com/help/mcve)适用于此处。在发布您的MCVE代码并准确描述问题之前,我们无法为您提供有效的帮助。 我们应该能够将发布的代码粘贴到文本文件中,并重现您描述的问题。 – Prune
我们可以看到你已经分配的任务,但你*问*我们*的是什么问题? – user2357112