首页 > 代码库 > Leetcode:Palindrome Number
Leetcode:Palindrome Number
题目大意是提供一个32位整数,判断这个数的十进制字符串形式是否是回文。所谓的回文就是字符串的逆序形式与正序形式完全一致。比如123不等于321不符合条件,121等于121符合条件,当然-1不等于1-也是不符合条件的。题目还限制了允许使用的存储空间。
可以简单地利用另外一个32位整数m记录输入整数n的逆序形式,之后比较m是否等于n即可。时间复杂度和空间复杂度均可以认为是常数,故依旧是O(1)。
isPalindrome(n)
if(n < 0)
return false
m = 0, tmp = n
while(tmp >= 10)
m = m * 10 + tmp % 10
tmp = tmp / 10
return m == n / 10 && tmp == n % 10
下面提供实现代码:
package cn.dalt.leetcode; /** * Created by dalt on 2017/6/11. */ public class PalindromeNumber { public boolean isPalindrome(int x) { if (x < 0) { return false; } int tmp = x; int r = 0; while (tmp >= 10) { r = r * 10 + tmp % 10; tmp /= 10; } return r == x / 10 && tmp == x % 10; } }
Leetcode:Palindrome Number
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。