Leetcode:Palindrome Number
阿新 • • 發佈:2017-06-11
log bool 利用 代碼 style create 簡單 完全 eat
題目大意是提供一個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; intr = 0; while (tmp >= 10) { r = r * 10 + tmp % 10; tmp /= 10; } return r == x / 10 && tmp == x % 10; } }
Leetcode:Palindrome Number