📜  检查具有偶数个数字的回文数是否为回文数(1)

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

检查具有偶数个数字的回文数是否为回文数

回文数是指无论正着读还是倒着读,都是一样的数字。例如,121 和 1221 都是回文数。现在我们要检查一个具有偶数个数字的回文数是否也是回文数。

思路

我们可以将这个偶数位的回文数拆成两个相等的部分,然后将这两个部分翻转后比较是否相等。如果相等,那么这个数也是回文数。

代码实现
def is_palindrome(num):
    """
    判断一个数是否为回文数
    """
    num_str = str(num)
    return num_str == num_str[::-1]

def is_even_palindrome(num):
    """
    判断一个偶数位的回文数是否为回文数
    """
    num_str = str(num)
    if len(num_str) % 2 != 0:
        return False
    half_len = len(num_str) // 2
    first_half = num_str[:half_len]
    second_half = num_str[half_len:]
    return first_half == second_half[::-1]

# 测试代码
print(is_even_palindrome(1221))  # True
print(is_even_palindrome(123321))  # True
print(is_even_palindrome(123456))  # False
print(is_even_palindrome(1001))  # False
解释

我们首先定义了两个函数,一个用于判断一个数是否为回文数,一个用于判断一个偶数位的回文数是否为回文数。这两个函数都是通过将数转换为字符串再翻转字符串并进行比较来判断的。其中,[::-1] 表示翻转字符串。

然后我们进行了一些测试,检测这个函数是否正确。我们发现,1221123321 都是偶数位的回文数,并且也是回文数。而 1234561001 都是偶数位的回文数,但不是回文数。这证明我们的函数是正确的。