|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def is_palindrome(n, start, end):
if start > end:
return 1
else:
return is_palindrome(n, start+1, end-1) if n[start] == n[end] else 0
string = input('请输入一串字符串:')
length = len(string)-1
if is_palindrome(string, 0, length):
print('\"%s\"是回文字符串!' % string)
else:
print('\"%s\"不是回文字符串!' % string)
不懂就问,0.加粗的那句话应该怎么解释,if语句可以直接跟在后面不另起吗? 为什么if后面只有条件,没有返回的值?
1.string不是字符吗?也可以直接放到函数中吗?
2.return 1是什么意思?return的值最后去了哪里?
0.如果起始和最后的字符一样,就继续统计第二个和倒数第二个是不是一样,如果中间哪个不一样了就返回0
1.这里函数参数n明显是个可迭代序列,不要被他用n给迷惑了,都用上索引值了
2.返回1即返回是回文字符串,递归函数递归到最后才调用到他
如果能返回到这里,证明之前的各种调用都通过了,只不过将1传给最开始的参数
|
|