利用递归函数实现检查一个字符串是否为回文数

练习题目:
创建一个函数,用于检查任意一个字符串是否为回文字符串,如果是则返回True,如果不是则返回False

  • 回文字符串:字符串从前往后念与从后往前念一样
  • 例如:abc不是回文字符串,abba是回文字符串,abcba是回文字符串。
# 【普通写法】
def find_palindromic(word: str) -> bool:
    '''
    This function check if any given word is palindromic. If yes, return True; else return False
    '''
    # 字符串只剩一位或没有字符的时候,问题不能再拆分,由于之前均没有报false, 说明这个word是回文
    if len(word) < 2:
        return True
    
    # 如果第一位字符与最后一位字符不相等,则返回false
    if word[0] == word[-1]:
        return False
    # 如果字符串有超过1位字符,且第一位与最后一位字符相等,则进行递归
    else:
        return find_palindromic(word[1:-1])  #取第一位到倒数第二位之间的字符

# 调用函数
find_palindromic('abcddba') 
#【最后两步简化写法】
def find_palindromic(word: str) -> bool:
    '''
    This function check if any given word is palindromic. If yes, return True; else return False
    '''
    if len(word) < 2:
        return True
    
    # 如果第一个表达式为false, 则不执行and后面的语句;如果第一个表达式为true, 则执行and后面的语句,进行递归
    return word[0]==word[-1] and find_palindromic(word[1:-1]) 

# 调用函数
find_palindromic('abcddba') 

你可能感兴趣的:(Python,对象和函数,字符串,python,leetcode)