Python | Leetcode Python题解之第564题寻找最近的回文数

题目:

题解:

python 复制代码
class Solution:
    def nearestPalindromic(self, n: str) -> str:
        m = len(n)
        candidates = [10 ** (m - 1) - 1, 10 ** m + 1]
        selfPrefix = int(n[:(m + 1) // 2])
        for x in range(selfPrefix - 1, selfPrefix + 2):
            y = x if m % 2 == 0 else x // 10
            while y:
                x = x * 10 + y % 10
                y //= 10
            candidates.append(x)

        ans = -1
        selfNumber = int(n)
        for candidate in candidates:
            if candidate != selfNumber:
                if ans == -1 or \
                        abs(candidate - selfNumber) < abs(ans - selfNumber) or \
                        abs(candidate - selfNumber) == abs(ans - selfNumber) and candidate < ans:
                    ans = candidate
        return str(ans)
相关推荐
吴佳浩2 小时前
LangChain 深入
人工智能·python·langchain
网安-轩逸5 小时前
回归测试原则:确保软件质量的基石
自动化测试·软件测试·python
Mr_Xuhhh5 小时前
YAML相关
开发语言·python
咖啡の猫5 小时前
Python中的变量与数据类型
开发语言·python
汤姆yu5 小时前
基于springboot的电子政务服务管理系统
开发语言·python
执笔论英雄6 小时前
【RL】python协程
java·网络·人工智能·python·设计模式
帮帮志7 小时前
【AI大模型对话】流式输出和非流式输出的定义和区别
开发语言·人工智能·python·大模型·anaconda
jquerybootstrap7 小时前
大地2000转经纬度坐标
linux·开发语言·python
Y***89087 小时前
【JAVA进阶篇教学】第十二篇:Java中ReentrantReadWriteLock锁讲解
java·数据库·python
DanB248 小时前
Java(多线程)
java·开发语言·python