回文字符串递归解法表达式怎么理解?
def is_palindrome(n,start,end):if start > end:
return 1
else:
return is_palindrome(n,start+1,end-1) if n == n else 0
string = input("请输入一串字符串:")
length = len(string)-1
if is_palindrome(string,0,length): #这里面的实参是什么意思?跟形参start end之间是什么关系?
print('"%s"是回文字符串!' % string)
else:
print('"%s"不是回文字符串!' % string)
{:10_277:}
#return里面有if else 而且没有缩进跟冒号,这样也可以吗?if的条件 n n是什么意思? def is_palindrome(n,start,end):
if start > end:
return 1
else:
return is_palindrome(n,start+1,end-1) if n == n else 0
""" 1, is_palindrome(n,start+1,end-1)就是把字符串的开头向前移动一位,
末尾向后移动一位,缩小范围,然后依次比较这俩玩意。
2, if n == n else 0 三元表达式,你应该学过吧。
3,if n == n就是比较start位置的字符是否和end位置的字符相等,不相等就return 0."""
string = input("请输入一串字符串:")
length = len(string)-1
if is_palindrome(string,0,length): # string是目标字符串,0是字符串开头,length是字符串的结尾
print('"%s"是回文字符串!' % string)
else:
print('"%s"不是回文字符串!' % string)
页:
[1]