首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python 回文数 多种解法

python 回文数 多种解法

作者头像
编程小白狼
发布2024-12-31 08:11:05
发布2024-12-31 08:11:05
2600
举报
文章被收录于专栏:编程小白狼编程小白狼

解法一:字符串反转 将数字转换为字符串,然后将字符串反转,最后判断反转后的字符串是否与原字符串相等。

代码语言:javascript
复制
def is_palindrome(num):
    # 将数字转换为字符串
    num_str = str(num)
    # 反转字符串
    reversed_str = num_str[::-1]
    # 判断反转后的字符串是否与原字符串相等
    if num_str == reversed_str:
        return True
    else:
        return False

解法二:取余和整除 通过取余和整除操作,逐位比较数字的首尾数字。

代码语言:javascript
复制
def is_palindrome(num):
    # 将数字转换为字符串
    num_str = str(num)
    # 初始化左右指针
    left, right = 0, len(num_str) - 1
    # 比较首尾数字
    while left < right:
        if num_str[left] != num_str[right]:
            return False
        left += 1
        right -= 1
    return True

解法三:数学方法 通过数学计算,将数字反转,并与原数字进行比较。

代码语言:javascript
复制
def is_palindrome(num):
    # 判断特殊情况:负数、以0结尾的非零数都不是回文数
    if num < 0 or (num % 10 == 0 and num != 0):
        return False
    # 初始化反转数字
    reverse_num = 0
    while num > reverse_num:
        # 反转数字
        reverse_num = reverse_num * 10 + num % 10
        # 更新原数字
        num //= 10
    # 判断回文数的长度是奇数还是偶数
    return num == reverse_num or num == reverse_num // 10
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档