1
var nearestPalindromic = function (n) {2
//special case return immediately7
const gen99 = (len) => {8
return "9".repeat(len);10
const gen101 = (len) => {11
return "1" + "0".repeat(len - 1) + "1";14
let case1 = gen99(n.length - 1);15
let case2 = gen101(n.length - 1);16
let case3 = gen99(n.length);17
let case4 = gen101(n.length);19
let tempPalindrome = "";20
let tempPalindromeRev = "";22
let endCode = n.length - 1;23
while (endCode - startCode > 1) {24
tempPalindrome = tempPalindrome + n[startCode];25
tempPalindromeRev = n[startCode] + tempPalindromeRev;29
const addCenterStr = (add) => {30
if (n.length % 2 !== 0) {31
return tempPalindrome + (Number(n[startCode]) + add);35
(Number(n[startCode]) + add) +36
(Number(n[startCode]) + add)40
let case5 = addCenterStr(0) + tempPalindromeRev;41
let case6 = addCenterStr(-1) + tempPalindromeRev;42
let case7 = addCenterStr(1) + tempPalindromeRev;44
//Find smallest difference ans45
const list = [case1, case2, case3, case4, case5, case6, case7];50
let diff = Math.abs(n - i);51
if (diff == tempDiff && Number(i) < Number(ans)) {54
if (diff < tempDiff || !tempDiff) {