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)
相关推荐
Forever Nore5 小时前
LeetCode 4 寻找两个正序数组的中位数 - 二分
算法·leetcode
北斗落凡尘6 小时前
LangGraph 入门实战(2)
python·langchain
ttod_qzstudio7 小时前
Java 常用语法极简通关(五):类与对象——字段、方法、构造器、this 与 static
java·开发语言·python
jufeng13078 小时前
【系列:手搓自主 AI Agent:Hermes 架构原理剖析 · 第 1 篇】
人工智能·python·架构·agent
月光船幽幽9 小时前
影子模式下保护 logits 不被修改
人工智能·python·算法
_oP_i11 小时前
python 后缀 mjs文件
开发语言·python
北斗落凡尘11 小时前
如何使用LangGraph(1)
python·langchain
Livia要学习12 小时前
Python装饰器
开发语言·python
evans在进步13 小时前
LeetCode 200:岛屿数量——Java DFS 染色法详解
java·leetcode·深度优先
大模型丫丫13 小时前
LangChain4j:Java 生态的 AI 应用开发利器
java·人工智能·python