我被要求定义一个递归函数
我想,因为我必须检查字符串中的空格,这可能是使用包装器包含在我的isPalindrome()
函数中的绝佳机会。
def rem_spaces(string, g=''):
"""
parameters : string of type str;
returns : a string with all the spaces removed
"""
if len(string)==0:
return g
if string[0]!=' ':
return rem_spaces(string[1:], g+string[0])
return rem_spaces(string[1:], g)
def isPalindrome(string):
"""
parameters : string of type str
returns : True if the string is a palindrome, False if not
"""
string=rem_spaces(string)
if len(string) % 2 != 0:
return False
if len(string)==0:
return True
if string[0]==string[-1]:
return isPalindrome(string[1:-1])
return isPalindrome(string[1:-1])
print(isPalindrome('ferdihe '))
将输出以下内容:
True
我的代码有什么问题?
答案 0 :(得分:1)
您为什么不这样做呢?
def ispalindrome(x):
n=len(x)
return x==x[::-1]
test = ' hannah '
ispalindrome(test)
#True
test = ' hannah'
ispalindrome(test)
#False