问题的表述如下:
编写一个递归函数,给定一个字符串,检查字符串是否由彼此相等的两半组成(即s = s1 + s2,s1 = s2),强加等式运算符==的约束只能应用到长度≤1的字符串.如果字符串的长度为奇数,则返回错误.
我在Python 2.7中编写了这个代码是正确的(它每次都给我正确的答案),但根本不进入那个递归循环.那我可以在这里省略这个电话吗?
def recursiveHalfString(s):
#@param s: string
#@return bool
if (len(s))%2==0: #verify if the rest of the division by 2 = 0 (even number)
if len(s)<=1: # case in which I can use the == operator
if s[0]==s[1]:
return True
else:
return False
if len(s)>1:
if s[0:len(s)/2] != s[len(s)/2:len(s)]: # here I used != instead of ==
if s!=0:
return False
else:
return recursiveHalfString(s[0:(len(s)/2)-1]+s[(len(s)/2)+1:len(s)]) # broken call
return True
else:
return "Error: …Run Code Online (Sandbox Code Playgroud)