小编Mar*_* S.的帖子

python中的递归函数不会自行调用

问题的表述如下:

编写一个递归函数,给定一个字符串,检查字符串是否由彼此相等的两半组成(即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)

python python-2.7

3
推荐指数
1
解决办法
102
查看次数

标签 统计

python ×1

python-2.7 ×1