当前位置: 首页 > article >正文

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

题目:

题解:

class Solution {
    public String nearestPalindromic(String n) {
        long selfNumber = Long.parseLong(n), ans = -1;
        List<Long> candidates = getCandidates(n);
        for (long candidate : candidates) {
            if (candidate != selfNumber) {
                if (ans == -1 ||
                    Math.abs(candidate - selfNumber) < Math.abs(ans - selfNumber) ||
                    Math.abs(candidate - selfNumber) == Math.abs(ans - selfNumber) && candidate < ans) {
                    ans = candidate;
                }
            }
        }
        return Long.toString(ans);
    }

    public List<Long> getCandidates(String n) {
        int len = n.length();
        List<Long> candidates = new ArrayList<Long>() {{
            add((long) Math.pow(10, len - 1) - 1);
            add((long) Math.pow(10, len) + 1);
        }};
        long selfPrefix = Long.parseLong(n.substring(0, (len + 1) / 2));
        for (long i = selfPrefix - 1; i <= selfPrefix + 1; i++) {
            StringBuffer sb = new StringBuffer();
            String prefix = String.valueOf(i);
            sb.append(prefix);
            StringBuffer suffix = new StringBuffer(prefix).reverse();
            sb.append(suffix.substring(len & 1));
            String candidate = sb.toString();
            try {
                candidates.add(Long.parseLong(candidate));
            } catch (NumberFormatException ex) {
                continue;
            }
        }
        return candidates;
    }
}

http://www.kler.cn/a/399487.html

相关文章:

  • Acrobat Pro DC 2023(pdf免费转化word)
  • 怎样在软件设计中选择使用GOF设计模式
  • 3356. 零数组变换 Ⅱ
  • 爬虫——Requests库的使用
  • 技术周总结 11.11~11.17 周日(Js JVM XML)
  • PHP代码审计 --MVC模型开发框架rce示例
  • 关于网络安全里蜜罐的详细介绍
  • 机器学习———特征工程
  • 使用Python和BeautifulSoup进行网页抓取:通过Python编程语言,结合BeautifulSoup库,可以轻松地从网站上抓取所需的信息。
  • TCP协议(一)
  • 【Golang】——Gin 框架简介与安装
  • <项目代码>YOLOv8 番茄识别<目标检测>
  • Towards Reasoning in Large Language Models: A Survey
  • OpenGL 进阶系列09 - 计算着色器
  • 力扣整理版七:二叉树(待更新)
  • 小程序-基于java+SpringBoot+Vue的驾校预约平台设计与实现
  • windbg 关于L10比L9多更多行,和poi的含义
  • 【Linux---09】Crontab定时调度
  • 【C++】哈希表的实现详解
  • 如何在 WordPress 中轻松强制所有用户退出登录
  • Android Osmdroid + 天地图 (一)
  • Factory快速入门
  • 超详细:索引介绍(易懂!)
  • React--》如何高效管理前端环境变量:开发与生产环境配置详解
  • 阿里云MYSQL调优之慢查询
  • 刘艳兵-DBA036-Oracle数据库中的触发器(Trigger)可以在以下哪种情况下自动执行?