我正在尝试制作一个程序,该程序采用按字母顺序排列的字符串并通过将字符串分成两部分来查找该字符串中的特定字符,以找到中间的字符,或者比中间少一半,或者在大于中间字符的一半上。
我尝试了以下代码并得到了错误:
cannot concatenate 'str' and 'int' objects.|
我正在尝试将字符串切成两半并将正确的一半返回给程序以再次查找字符。例如,如果字符小于中间字符,我们应该扔掉右半部分,返回左半部分,然后找到中间部分。下面是程序挂起的代码示例:有人可以告诉我为什么吗?return isInF(char, aStr[:middle])
def isIn(char, aStr):
def toChars(aStr):
s = aStr.lower()
ans = ''
for c in s:
if c in 'abcdefghijklmnopqrstuvwxyz':
ans = ans + c
return ans
def isInF(aStr):
if len(aStr) == 0:
return False
elif len(aStr) == 1:
if char == aStr:
return True
else:
return False
elif len(aStr)> 1:
length = len(aStr)
middle = aStr[((length-1)/2)]
if char == middle:
return True
elif char < middle:
return isInF(char, aStr[:middle])
elif char > middle:
return isInF(char, aStr[middle+1:])
return isInF(toChars(aStr))
isIn ('c', 'aaaabbbbc')