大厂面试题-力扣第9题超详细解析

大厂面试题-力扣第9题超详细解析

题目描述:

判断一个数是否是回文数。回文数是指正序(从左到右)和倒序(从右到左)读都是一个数。例如121:正序和逆序都是121

解题思路:

既然我们知道了什么是回文数,知道了回文数正序和逆序的特征,我们可以利用这点,封装一个函数,将要判断的整数传入,我们需要把传入 整数变成数组,再得到一个新的数组,这个数组是原数组的倒序数组,利用这两个数组的length相同,只需比较对应下标的值是否一样即可判断这个数是否是回文数。话不多说,直接上代码感受一下~

1.首先把传入的整数,变成数组
function isPalindrome( x ){
	//因为字符串变数组比较方便,所以利用字符串拼接先把整数变成字符串
    x += ""
    //再用split把字符串变成数组
    var arr = x.split("")
}
2.经过上述操作,我们已经把整数变成数组,这个时候需要得到原数组的倒序数组
//定义一个新数组
var new_arr = []
//循环把原数组从后往前插入这个数组
for(var i = arr.length - 1 ; i >= 0 ; i --){
	new_arr.push(arr[i])
}
//这里有小伙伴可能会问,数组倒序简单啊,直接reverse数组API不就倒序了吗?
//注意,reverse会返回一个原数组,也就是说会改变原数组,我们需要用到原数组,所以不能改变它,reverse在这里不合适!!!
3.我们需要得到两个数组相应下标的值是否相等
//因为我们不好直接得到结果,所以定义一个标识变量用来记录状态
var flag = false
//遍历随便一个数组,因为两个数组length相等,我们只需得到下标即可,所以遍历可以随便
for(var k = 0 ; k < new_arr.length ; k ++){
    //如果对应下标的值相等,标识变量变成true
    if(new_arr[k] === arr[k]){
        flag = true
    }else{
	//只要有一个值不相等,说明这break个数不是回文数,标识变量变为flase,跳出循环,直接返回
        flag = fasle
        break
    }
}
4.返回标识变量
function isPalindrome( x ){
	return flag
}
到这里就实现了判断回文数,整体代码如下
function isPalindrome( x ){
            x += ""
            x = x.split("")
            var arr = []
            for(var i = x.length - 1 ; i >= 0 ; i --){
                arr.push(x[i])
            }
            var flag = false
            for(var k = 0 ; k < arr.length ; k ++){
                if(arr[k] === x[k]){
                    flag = true
                }else{
                    flag = false
                    break
                }
            }
            return flag
        }
        var res = isPalindrome(123321)
        console.log(res) //true

        var res1 = isPalindrome(1233211)
        console.log(res1) //false
  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值