|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
问题如下:
2. 还记得求回文字符串那道题吗?现在让你使用递归的方式来求解,亲还能骄傲的说我可以吗?(ps:我有点想说句:我不行)
我的代码:
试着给了些注释,希望能看得懂,技术原因,代码很乱,还望谅解。
- def funtion1(n):
- length = len(n)-1#这里求出输入的字符串的长度
- n3 = length//2#这里求出字符串对半分开后的长度
- n4 = 1
- if n3 == 0:
- return '正确'
- elif n4 == 0:
- return '错误'
- elif length%2 == 0:#判断字符串的长度为单数还是复数
- n1 = length//2#字符串对半分后的引索值
- n2 = n1+1#同上
- if n[n1] == n[n2]:#判断
- n3 -= 1
- n = n[1:-1]
- funtion1(n)
- return n3
- else:
- n4 -= 1
- return n4
- elif length%2 == 1:#判断字符串的长度为单数还是复数
- n1 = length//2#字符串对半分后的引索值
- n2 = n1+2#同上
- if n[n1] == n[n2]:#判断
- n3 -= 1
- n = n[1:-1]
- funtion1(n)
- return n3
- else:
- n4 -= 1
- return n4
- print(funtion1('adasdasd'))
- print(funtion1('上海自来水来自海上'))
复制代码
(ps:自闭ing,递归每一道题都是想了很久,然后一运行就出问题,最后都要发帖问,我是不是没救了?这题完了还有一题,我有预感待会可能还得再发一次贴)
简化了很多
- def funtion1(n):
- if len(n) == 0 or len(n) == 1: # 如果 n 长度为 0 或 1 时返回 True
- return True
-
- if n[0] != n[-1]:
- return False
- return funtion1(n[1:-1])
- print(funtion1('adasdasd'))
- print(funtion1('上海自来水来自海上'))
复制代码
|
|