一、题目
给定一个整数 n ,你需要找到与它最近的回文数(不包括自身)。
“最近的”定义为两个整数差的绝对值最小。
示例 1:
输入: "123"
输出: "121"
二、思路
如果数组的字符串长度 == 1,数字n - 1
开头为1,9**9为一个候选答案 例:100000,答案为99999
开头为9, 10**01为一个候选答案 例:99999,答案为100001
如果本身对称,则把最中间的一个(或两个)位数减(如果0则加
例:123321,答案为122221
例:120021,答案为121121
如果不对称:
把前半部分逆序替换掉后半部分 例:1223,答案为1221
把最中间的一个(或两个)位数加一 例:1283,答案为1331,而非1221
把最中间的一个(或两个)位数减一 例:1800,答案为1771,而非1881
三、实现
public String nearestPalindromic(String n) { // 处理特殊值 1位数 if (n.length() == 1) { return String.valueOf(Math.abs(Long.parseLong(n) - 1)); } // 原始数据 Long num = Long.parseLong(n); // 原始数据直接 转回文