Leetcode:Palindrome Number
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章