|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
作业:还记得求回文字符串那道题吗?现在让你使用递归的方式来求解,亲还能骄傲的说我可以吗?
我的作业如下,思路是:每次对比字符串的首字符 和 末字符是否相等, 如果相等把字符串切片,去掉首字符 和 末字符,然后继续递归。
- ll = '上海自一水来自海上'
- def is_hwl1(x):
- str_len = len(x)
- if str_len % 2 == 0:
- return False
- if x[0] != x[-1]:
- print("当前字符串:%s , 首字符:%c ,末字符:%c " %(x, x[0], x[-1])) # 在这里遇到问题,明明判断字符不一样,代码执行到这里了,下一句就是返回False,但是 返回确实True??!!
- return False
- else:
- if str_len-1 >= 3:
- is_hwl1(x = x[1:str_len-1])
- return True
- print(is_hwl1(ll))
复制代码
输出结果:
- 当前字符串:一水来 , 首字符:一 , 末字符:来
- True
- >>>
复制代码
这是你没有 return 导致的,加上就好了:
- ll = '上海自一水来自海上'
- def is_hwl1(x):
- str_len = len(x)
- if str_len % 2 == 0:
- return False
- if x[0] != x[-1]:
- print("当前字符串:%s , 首字符:%c ,末字符:%c " %(x, x[0], x[-1])) # 在这里遇到问题,明明判断字符不一样,代码执行到这里了,下一句就是返回False,但是 返回确实True??!!
- return False
- else:
- if str_len-1 >= 3:
- return is_hwl1(x = x[1:str_len-1])
- return True
- print(is_hwl1(ll))
复制代码
|
|