LeetCode-回文數(shù)

題目鏈接 => 戳這里

題目截圖

解析

我們從題目中就可以知道如果輸入的整數(shù)是負(fù)數(shù),那么這個(gè)數(shù)就一定不是回文數(shù),那么還有沒有其他特例情況呢?我們考慮一下結(jié)尾是0的數(shù),如果這個(gè)數(shù)不是0,而是10,20這種,那么也一定不是回文數(shù)。那么正常情況下如何判斷一個(gè)整數(shù)是否為回文數(shù)呢?
1.反轉(zhuǎn)整個(gè)整數(shù),通過 x % 10的方式,我們每次可以拿到x最后一位的數(shù),然后通過x = x / 10的方式去除最后一位,例如:

x = 123; revertNum = 0;
設(shè)置一個(gè)中間值temp = x
第一次:revertNum = revertNum * 10 + temp % 10 => 3, temp= temp/ 10 => 12;
第二次:revertNum = revertNum * 10 + temp % 10 => 32, temp= temp/10 => 1;
第三次:revertNum = revertNum * 10 + temp % 10 => 321, temp = temp /10 => 0;
終止條件是 temp <= 0;

class Solution {
    public boolean isPalindrome(int x) {
        if (x < 0 || (x % 10 ==0 && x != 0)) {
            return false;
        }
        int revertNum = 0;
        int  temp = x;
        while (temp > 0) {
            revertNum = revertNum * 10 + temp % 10;
            temp /= 10;
        }
        return x == revertNum ;
    }
}

為什么要用temo中間值呢?因?yàn)槲覀冃枰米畛醯膞值來和反轉(zhuǎn)后的值進(jìn)行比較,看是否相等;
2.其實(shí)一個(gè)回文數(shù),我們只需要反轉(zhuǎn)它的一半數(shù)就可以知道它是不是回文數(shù)了;

class Solution {
    public boolean isPalindrome(int x) {
        if (x < 0 || (x % 10 ==0 && x != 0)) {
            return false;
        }
        int revertNum = 0;
        while (x > revertNum) {
            revertNum = revertNum * 10 + x % 10;
            x /= 10;
        }
        return x == revertNum || x == revertNum/10;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 10分鐘,參見整數(shù)反轉(zhuǎn)的思想,這里不用擔(dān)心反轉(zhuǎn)后時(shí)候越界 1.題目理解不透徹,小于0的不能算做回文數(shù)2.reult...
    mztkenan閱讀 181評(píng)論 0 0
  • 題目 來源:力扣(LeetCode)鏈接:https://leetcode-cn.com/problems/pal...
    簡書帥氣的昵稱已被使用閱讀 323評(píng)論 0 0
  • 判斷一個(gè)整數(shù)是否是回文數(shù)?;匚臄?shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù)。 示例 1: 輸入: 12...
    幽泉流霜閱讀 375評(píng)論 0 0
  • 回文數(shù) 題目來源:https://leetcode-cn.com/problems/palindrome-numb...
    大夢三千秋閱讀 189評(píng)論 0 1
  • 判斷一個(gè)整數(shù)是否是回文數(shù)。回文數(shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù)。 示例 1: 輸入: 12...
    仁安天下閱讀 72評(píng)論 0 0

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