leetcode 9 Palindrome Number

題目詳情

Determine whether an integer is a palindrome. Do this without extra space.

題目要求咱們在不佔用額外空間的前提下,判斷一個整數是不是迴文數。數組

想法

  • 這道題的描述有一丟丟讓人一頭霧水,這個不佔用額外空間的意思主要是讓咱們不要嘗試去轉換成字符串,或者是使用數組進行解題。
  • 有一點須要注意的是,負數不算做迴文數。
  • 那麼這道題如何解題呢?迴文數和第7題(獲取整數的翻轉數)有必定的類似之處。而第7題當時的方法是,對整數取除10的餘數,便是當前整數的最後一位。
  • 這道題咱們也能夠先對整數進行翻轉,而後比較翻轉後的整數是否等於輸入的整數,以肯定這個數是否爲迴文數。
  • 可是還有一種更快速的想法,由於若是這個輸入的整數爲迴文數。那麼它翻轉後一半的數字以後,應該和前半段的數字相等,咱們將採用這種思路進行解題。

解法

if(x < 0 || x !=0 && x %10 ==0) return false;
        int res = 0;
        
        while(x > res){
            res = res*10+x%10;
            x = x/10;
        }
        
        return(x==res || x == res/10);
相關文章
相關標籤/搜索