LeetCode-Palindrome Number

描述

  • 判斷整數(shù)是否為回文數(shù),不使用額外的空間(O(1));

版本一

  • 直觀想法就是從低到高取該數(shù)的每一位,然后反向乘上10累加起來
  • 代碼(AC):
        bool isPalindrome(int x)
       {
            if(x < 0) return false;
            int sum = 0, tmp = x;
            while(x > sum)
            {
                sum = sum * 10 + x % 10;
                x =  x / 10;
            }
            return x == tmp;     
        }
    
    
  • 這思路就是反向把該數(shù)遍歷一遍,解法比較樸實。

版本二

```
bool isPalindrome(int x) 
{
    if(x < 0 || (x != 0 && x % 10 == 0)) 
    return false;
    int sum = 0;
    while(x > sum){
        sum = sum * 10 + x % 10;
        x = x / 10;
    }
    return (x == sum) || ( x== sum / 10);
}

```
  • 思路:該方法優(yōu)化的地方在于,它只需要把該整數(shù)遍歷一般就夠了,(x == sum) || ( x== sum / 10)即判斷該整數(shù)偶數(shù)位或奇數(shù)位的情況;
  • 由于對于類似于10、100...這類數(shù)字不適合于該解法,因此在開始直接把這種非回文數(shù)給over了
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容