刷题日记-简单-回文数
前言
一个小伙伴说希望成立一个刷题小组,本就着富强、民主、文明、和谐,倡导自由、平等、公正、法治,倡导爱国、敬业、诚信、友善,积极培育社会主义核心价值观,我答应他了。
因为也没有刷过题,比较菜。然后就看了下别人家的孩子怎么刷题的,这里附上链接。
朝花夕拾 - 2019 总结(附 283 道 LeetCode 题解)
题目描述:
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
- 例如,
121是回文,而123不是。
示例
输入: x = 121
输出: true
输入: x = -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
输入: x = 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
/**
* @param {number} x
* @return {boolean}
* 思路,整数转为字符串,然后反转字符串,检查反转字符串是否相同
* 转成数组两头遍历,相同返回真,不同则false
*/
var isPalindrome = function(x) {
let numberStringArr = x+"";
let length = numberStringArr.length;
let len = length/2
let res = true
for(let i = 0;i<len;i++){
if(numberStringArr[i]!==numberStringArr[length-1-i]){
return res = false
}
}
return res
};
太菜了。看看别人怎么写的
答案一:
/**
* @param {number} x
* @return {boolean}
*/
var isPalindrome = function(x) {
return ( x+'').split('').reverse().join('')==x+''
};
答案二:
function overTurn(x)
{
// 利用回文数左右对称的原理,即将回文数翻转后仍等于未翻转时数值
// 转换为字符串
let xString=x.toString()
// 翻转字符串存放变量
let overTurnString=''
// 翻转字符串
for(let item of xString)overTurnString=item+overTurnString
// 如果翻转后仍等于翻转前则为回文数,否则不为。
return xString==overTurnString
}
答案三:
/**
* @param {number} x
* @return {boolean}
*/
var isPalindrome = function(x) {
if(x<0){
return false
}else{
x=x.toString().split('')
if(x.toString()===x.reverse().toString()){
return true
}else{
return false
}
}
};