[LeetCode]9.回文數(shù)

題目

第9題:回文數(shù)

判斷一個整數(shù)是否是回文數(shù)。回文數(shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù)忘闻。

示例 1:
輸入: 121
輸出: true

示例 2:
輸入: -121
輸出: false
解釋: 從左向右讀, 為 -121 精续。 從右向左讀, 為 121- 。因此它不是一個回文數(shù)处窥。

示例 3:
輸入: 10
輸出: false
解釋: 從右向左讀, 為 01 。因此它不是一個回文數(shù)损搬。

進階:
你能不將整數(shù)轉(zhuǎn)為字符串來解決這個問題嗎碧库?

思路&實現(xiàn)

思路:先取出各個數(shù)字變成list柜与,再翻轉(zhuǎn);然后判斷新的list與原來的是否一致

class Solution:
    def isPalindrome(self, x):
        """
        先取出各個數(shù)字組成list嵌灰,再翻轉(zhuǎn)
        :type x: int
        :rtype: bool
        """
        li = []
        if x < 0:
            return False
        else:
            while x != 0:
                li.append(x % 10)
                x = int(x / 10)
            return list(reversed(li)) == li

官方解釋

首先弄匕,我們應(yīng)該處理一些臨界情況。所有負數(shù)都不可能是回文沽瞭,例如:-123 不是回文迁匠,因為 - 不等于 3。所以我們可以對所有負數(shù)返回 false驹溃。

現(xiàn)在城丧,讓我們來考慮如何反轉(zhuǎn)后半部分的數(shù)字。 對于數(shù)字 1221豌鹤,如果執(zhí)行 1221 % 10亡哄,我們將得到最后一位數(shù)字 1,要得到倒數(shù)第二位數(shù)字布疙,
我們可以先通過除以 10 把最后一位數(shù)字從 1221 中移除蚊惯,1221 / 10 = 122,再求出上一步結(jié)果除以10的余數(shù)灵临,122 % 10 = 2截型,
就可以得到倒數(shù)第二位數(shù)字。
如果我們把最后一位數(shù)字乘以10儒溉,再加上倒數(shù)第二位數(shù)字宦焦,1 * 10 + 2 = 12,
就得到了我們想要的反轉(zhuǎn)后的數(shù)字顿涣。 如果繼續(xù)這個過程波闹,我們將得到更多位數(shù)的反轉(zhuǎn)數(shù)字。

現(xiàn)在的問題是园骆,我們?nèi)绾沃婪崔D(zhuǎn)數(shù)字的位數(shù)已經(jīng)達到原始數(shù)字位數(shù)的一半舔痪?

我們將原始數(shù)字除以 10,然后給反轉(zhuǎn)后的數(shù)字乘上 10锌唾,所以锄码,當原始數(shù)字小于反轉(zhuǎn)后的數(shù)字時,就意味著我們已經(jīng)處理了一半位數(shù)的數(shù)字晌涕。

復(fù)雜度分析

時間復(fù)雜度:O(\log_{10}(n))O(log 10 (n))滋捶, 對于每次迭代,我們會將輸入除以10余黎,因此時間復(fù)雜度為 O(\log_{10}(n))O(log10(n))重窟。
空間復(fù)雜度:O(1)O(1)。

實現(xiàn)

根據(jù)官方的解釋惧财,我試著實現(xiàn)了一下:

    def gaunfang(self, x):
        '''
        用時:400ms
        :param x:
        :return:
        '''
        if x < 0:
            return False
        temp_x = x
        y = 0
        while temp_x != 0:
            y = y * 10 + temp_x % 10
            temp_x = int(temp_x / 10)
        return y == x

其他方法

    def reversed_str(self, x):
        '''
        翻轉(zhuǎn)字符串
        用時:446ms
        :param x:
        :return:
        '''
        if str(x) == str(x)[::-1]:
            return True
        else:
            return False

這個方法主要是采用了字符串截取的方法巡扇,從最后逐位翻轉(zhuǎn)扭仁,在判斷。

題目難度

難度:簡單

總結(jié)

這道題的算法難度不大厅翔,實現(xiàn)起來簡單乖坠,但是沒有想到的是,python的實現(xiàn)方法會是如此的簡潔刀闷⌒鼙茫看來,還是的多接觸一下優(yōu)秀的代碼甸昏,增長一下自己的見識才行M绶帧7坠搿对途!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市杯聚,隨后出現(xiàn)的幾起案子花墩,更是在濱河造成了極大的恐慌悬秉,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冰蘑,死亡現(xiàn)場離奇詭異,居然都是意外死亡村缸,警方通過查閱死者的電腦和手機祠肥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梯皿,“玉大人仇箱,你說我怎么就攤上這事《” “怎么了剂桥?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長属提。 經(jīng)常有香客問我权逗,道長,這世上最難降的妖魔是什么冤议? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任斟薇,我火速辦了婚禮,結(jié)果婚禮上恕酸,老公的妹妹穿的比我還像新娘堪滨。我一直安慰自己,他們只是感情好蕊温,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布袱箱。 她就那樣靜靜地躺著遏乔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪发笔。 梳的紋絲不亂的頭發(fā)上盟萨,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音筐咧,去河邊找鬼鸯旁。 笑死,一個胖子當著我的面吹牛量蕊,可吹牛的內(nèi)容都是我干的铺罢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼残炮,長吁一口氣:“原來是場噩夢啊……” “哼韭赘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起势就,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤泉瞻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后苞冯,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袖牙,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年舅锄,在試婚紗的時候發(fā)現(xiàn)自己被綠了鞭达。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡皇忿,死狀恐怖畴蹭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鳍烁,我是刑警寧澤叨襟,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站幔荒,受9級特大地震影響糊闽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜铺峭,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一墓怀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卫键,春花似錦傀履、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碴犬。三九已至,卻和暖如春梆暮,著一層夾襖步出監(jiān)牢的瞬間服协,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工啦粹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留偿荷,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓唠椭,卻偏偏與公主長得像跳纳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子贪嫂,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容