【Lintcode】807. Palindrome Number II

題目地址:

https://www.lintcode.com/problem/palindrome-number-ii/description

給定一個非負整數,判斷其二進制表示是否迴文。直接算其二進制翻轉後的數,看一下是否與原數相等即可。代碼如下:

public class Solution {
    /**
     * @param n: non-negative integer n.
     * @return: return whether a binary representation of a non-negative integer n is a palindrome.
     */
    public boolean isPalindrome(int n) {
        // Write your code here
        int m = n;
        int rev = 0;
        while (m != 0) {
            rev <<= 1;
            rev += m & 1;
            m >>= 1;
        }
        
        return rev == n;
    }
}

時空複雜度O(1)O(1)O(32)=O(1)O(32)=O(1))。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章