Aber 发表于 2020-6-26 12:50:08

回文字符串递归解法表达式怎么理解?

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是什么意思?

qiuyouzhi 发表于 2020-6-26 12:57:41

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]
查看完整版本: 回文字符串递归解法表达式怎么理解?