leetcode-9. 回文数

描述

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例

  • 示例 1

    输入:121

    输出: true

  • 示例 2

    输入: -121

    输出: false

    解释:从左向右读,为 -121 。 从右向左读,为 121- 。因此它不是一个回文数。

  • 示例 3:

    输入: 10

    输出: false

    解释:从右向左读,为 01 。因此它不是一个回文数。

题解及分析思路

分析思路也许(肯定)不是最优,只是想法。

思路

输入是一个整数,如果这个整数小于 0,那么可定不是回文数。返回 false。

如果这个正是整数大于 0,可以把这个整数转为字符串数组:(num+’’).split (“”), 例如 12321 => [‘1’, ‘2’, ‘3’, ‘2’, ‘1’], 然后利用两个变量 left 和 right,不断去判断第 n 个和倒数第 n 个是否相等即可。

代码

javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* @param {number} x
* @return {boolean}
*/
var isPalindrome = function(x) {
if(typeof x !== "number")return false;
let arr = (x+"").split("");
let length = arr.length;
let left = 0;
let right = length -1;
while(left < right){
if(arr[left] === arr[right]){
left++;
right--;
}else{
return false;
}
}
return true;
};