Palindrome Number

Determine whether an integer is a palindrome. Do this without extra space.
判定一個(gè)整數(shù)是不是回文的,不要使用額外的臨時(shí)空間。

解:

需要想到的幾點(diǎn):負(fù)數(shù)是不是回文如-1,如果想要轉(zhuǎn)化為字符串,用字符串的倒置函數(shù),要想到不能使用額外的臨時(shí)空間。你也可以倒置這個(gè)數(shù),但是要考慮數(shù)字有可能溢出,如果這個(gè)數(shù)溢出的話,必然不是回文數(shù)了,因?yàn)榛匚臄?shù)的倒置之后的數(shù)等于原來(lái)的數(shù)。
采用這種思路:例如1234321利用取余和除數(shù)可以得到兩個(gè)數(shù)1234123或者另一種情況123321得到兩個(gè)數(shù)123123,進(jìn)而判斷是不是回文數(shù),參考代碼如下(C++)
class Solution { public: bool isPalindrome(int x) { if(x<0) return false; if(x<10) return true; if(x%10==0) return false; if(x<100&&x%11==0) return true; if(x<1000&&((x/100)*10+x%10)%11==0) return true; int res = 0; while(x>res){ res = res*10 + x%10; x = x/10; } return (x==res || x==res/10); } };
時(shí)間復(fù)雜度為O(n),空間復(fù)雜度為O(1).

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 題設(shè) 要點(diǎn) 反轉(zhuǎn)一半對(duì)比 要判斷是不是回文數(shù)字,一個(gè)思路是把int轉(zhuǎn)為string處理。但是題目限制了空間,所以不...
    liuzhifeng閱讀 189評(píng)論 0 0
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問(wèn)題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,890評(píng)論 0 33
  • 編程語(yǔ)言是 Java,代碼托管在我的 GitHub 上,包括測(cè)試用例。歡迎各種批評(píng)指正! 題目 —— Palind...
    秋名山菜車(chē)手閱讀 427評(píng)論 0 1
  • 描述 判斷整數(shù)是否為回文數(shù),不使用額外的空間(O(1)); 版本一 直觀想法就是從低到高取該數(shù)的每一位,然后反向乘...
    Hqmm閱讀 224評(píng)論 0 0
  • Determine whether an integer is a palindrome. Do this wit...
    蘭緣小妖閱讀 212評(píng)論 0 2

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