|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def is_palindrome(n, start, end):
if start > end:
return 1 # 这里为什么 返回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)
就返回 1 那里不懂。。。
这个字符串判断到最后的时候如果 start == end , 那就是
is_palindrome(n, start + 1, end - 1) 但是这时候传进的 start 就等于 end
因此在下一层中 start 就 大于 end
你可以想想 , 只有每一对字符都判断相等之后才会到 start == end -> start + 1 > end - 1
这一步 , 不然他们早就被返回 0 了
0 是 False 1 是 True
|
|