function isPalindrome(n) {
if (typeof n !== 'string') {
n = n.toString()
}
return n.split('').reverse().join('') === n
}
2、双指针遍历
function isPalindrome(n) {
if (typeof n !== 'string') {
n = n.toString()
}
let l = 0, r = n.length - 1
while(l <= r) {
if (n[l] !== n[r]) {
return false
}
l++
r--
}
return true
}
function getPalindromeNumber(length) {
return Array.from({ length }, (v, i) => i + 1).filter((n) => {
return isPalindrome(n)
})
}
getPalindromeNumber(10000)
二、不遍历所有数,直接找出规律,枚举所有对称数
function getPalindromeNumber() {
let res = []
for(let i = 1; i < 10; i++) {
res.push(i)
res.push(11 * i)
for(let j = 0; j < 10; j++) {
res.push(i * 101 + j * 10)
res.push(i * 1001 + j * 110)
}
}
return res
}
function twoSum(arr=[],target){
for (var i = 0,len = arr.length; i < len; i++) {
let num = target - arr[i]
let index = arr.findIndex(function(value) {
return value === num
})
if( index > -1){
return [i,index]
}
}
}
一、遍历所有数,判断是否是回文数
1、字符串反转后判断
2、双指针遍历
二、不遍历所有数,直接找出规律,枚举所有对称数
第 81 题:打印出 1 - 10000 之间的所有对称数 例如 121、1331 等