首页 > 代码库 > 判断一个int 型整数 是否为回文数
判断一个int 型整数 是否为回文数
leetcode 上的题目
Determine whether an integer is a palindrome. Do this without extra space.
由于不能使用额外空间,所以不能把数字转化为字符串后进行比较。因为这样空间复杂度将为线性。
leetcode给出了几点提示
1.判断负数是否为回文数,查了下回文数定义,负数不为回文数
2.就是注意不能把数字转字符串,因为不能用额外空间。
3.如果打算反转数字,需要处理好数字溢出情况
我的解决办法:
先获取数字长度,然后获取最右边的数及最左边的数。
var isPalindrome = function(x) { if(x < 0){ return false; } if(x < 10){ return true; } var tmp =x; var len = 1; var n= 1; while ( ( tmp = parseInt(tmp/10))!= 0){ len *= 10; n ++ ; } n = parseInt(n/2); var left = x; var right = x; for(var i =0 ; i <= n; i ++){ var t = parseInt(left/len)%10; var r = right%10; if(t != r){ return false; } len /= 10; right = parseInt(right/10); } return true; };
判断一个int 型整数 是否为回文数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。