回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121
输出:true
1
2
2
示例 2:
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
1
2
3
2
3
/**
* @param {number} x
* @return {boolean}
*/
var isPalindrome = function(x) {
if (x < 0) return false
let str = x.toString()
if (str.length === 1) return true
if (str.length === 2) {
if (str[0] === str[1]) return true
return false
}
let res = true
let isEven = str.length % 2 === 0
isEven ? helper(str.length / 2 - 1, str.length / 2) : helper((str.length - 1) / 2, (str.length - 1) / 2)
function helper(m, n) {
while (m >= 0 && n < str.length) {
if (str[m] !== str[n]) return res = false
--m
++n
}
}
return res
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/palindrome-number