2
这里在这quiz它告诉我编写一个代码,确保一个字符串是否在一个字母顺序排序的字符串中,它告诉我二分法搜索以确定一个字符是否在字符串中,并告诉我写一个递归代码,而不是(在我...)使用“在”如何编写代码来确定一个字符是否在字符串中?
我的代码是这样的:
def isIn(char, aStr):
'''
char: a single character
aStr: an alphabetized string
returns: True if char is in aStr; False otherwise
'''
var = 0
if char == '' and aStr == '':
return True
elif char == '' or aStr == '' :
return False
elif aStr[int((len(aStr))/2)] == char :
return True
elif aStr[int((len(aStr))/2)] < char :
var = int((len(aStr))/2)
return isIn(char , aStr[var:])
elif aStr[int((len(aStr))/2)] > char :
var = int((len(aStr))/2)
return isIn(char , aStr[0 : var])
但是当我传递值一样(字符=“O”而aStr =“efggnqu” ,或者char ='y'aStr ='orstv',或者char ='y'aStr ='aamotv')它给了我一个这样的错误:
Traceback (most recent call last):
File "submission.py", line 21, in isIn
return isIn(char , aStr[0 : var])
File "submission.py", line 18, in isIn
return isIn(char , aStr[var:])
File "submission.py"...OUTPUT TRUNCATED
解决方案是什么?
你可以简单地检查'焦炭在aStr'它将返回真或假 – Gahan
@Gahan的指示说不要。 – anonymoose