📜  检查字符串是否为回文的递归函数(1)

📅  最后修改于: 2023-12-03 15:26:45.919000             🧑  作者: Mango

检查字符串是否为回文的递归函数

回文是指正反顺序读都相同的字符串,例如“level”就是一个回文。检查字符串是否为回文可以用递归函数实现,以下是一个Python实现的示例代码:

def is_palindrome(string):
    # 如果字符串长度小于等于1,它一定是回文
    if len(string) <= 1:
        return True
    
    # 如果字符串的第一个和最后一个字符不相同,它就不是回文
    if string[0] != string[-1]:
        return False
    
    # 如果判断到这里,说明字符串首尾字符相同,继续递归判断去掉首尾字符后的部分是否为回文
    return is_palindrome(string[1:-1])

使用方法:

>>> is_palindrome('level')
True
>>> is_palindrome('hello')
False

这个函数的基本思路是:如果字符串的首尾字符相同,并且去掉首尾字符后的部分也是回文,那么整个字符串就是回文。于是我们可以用递归函数判断去掉首尾字符后的部分是否为回文,并将结果返回,以实现递归判断整个字符串是否为回文的效果。

这个算法的时间复杂度是O(n),因为每次递归都会去掉字符串的前后两个字符,因此最多递归n/2次,其中n是字符串的长度。空间复杂度也是O(n),因为每次递归都需要存储去掉首尾字符后的部分。