回文数判断

🎉摘要:Python 是一门解释型、面向对象、动态类型的高级编程语言,由荷兰程序员 Guido van Rossum 于 1991 年发布,核心设计理念是优雅、明确、简单。

该示例将介绍如何判断回文。

什么是回文?

回文指正着读和反着读完全一样的文字或数字。例如:上海自来水来自海上、level、noon

回文数指正着写和反着写相同的整数。例如:121、1331、12321、5、0

回文的特点:

  • 负数一般不是回文数,例如 -121 反过来是 121-

  • 末尾是 0 且数本身不是 0 的数,一定不是回文数,例如 120 → 021=21

示例

示例 1:判断一个字符串是否为回文字符串。

def is_palindrome(num):
    # 负数不可能是回文数
    if num < 0:
        return False
    
    # 把数字转为字符串
    s = str(num)
    
    # 字符串反转:[::-1] 表示从后往前取全部字符
    reversed_s = s[::-1]
    
    # 判断原字符串和反转后的字符串是否相等
    return s == reversed_s


# 测试
print(is_palindrome(121))    # True
print(is_palindrome(-121))   # False
print(is_palindrome(12))     # False
print(is_palindrome(12321))  # True
print(is_palindrome(0))      # True

运行结果:

True
False
False
True
True

示例 2:判断一个数字是否是回文数

def is_palindrome_math(num):
    # 负数不是回文数
    if num < 0:
        return False
    
    # 末尾为0且不是0本身,不是回文
    if num % 10 == 0 and num != 0:
        return False

    # 用来存储反转后的数字
    reversed_num = 0
    # 保存原数,避免被修改
    original = num

    # 逐位反转数字
    while num > 0:
        # 取最后一位
        digit = num % 10
        # 拼到反转数后面
        reversed_num = reversed_num * 10 + digit
        # 去掉最后一位
        num = num // 10

    # 判断原数和反转数是否相等
    return original == reversed_num


# 测试
print(is_palindrome_math(12321))  # True
print(is_palindrome_math(123))    # False
print(is_palindrome_math(0))      # True

运行结果:

True
False
True

  



说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号