《Leetcode》9. 迴文數

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

示例 1:

輸入: 121
輸出: true

示例 2:

輸入: -121
輸出: false
解釋: 從左向右讀, 爲 -121 。 從右向左讀, 爲 121- 。因此它不是一個迴文數。

示例 3:

輸入: 10
輸出: false
解釋: 從右向左讀, 爲 01 。因此它不是一個迴文數

思路:

這個題目比較簡單,首先輸入是一個整數,如果這個整數是負數的話,不可能是迴文數;如果是非負數的話,用以下兩個方法去判斷:

1、字符串的逆序

將這個整數轉爲字符串然後進行判斷,如果字符的前序和逆序都是相同的,就說明這個是一個迴文數。否則不是。

2、顛倒數字

顛倒數字和那個思想是一摸一樣的,不過這個就是一步一個腳印去做,把這個整數一步步顛倒過來,然後判斷這兩個整數是否相等,如果相等那就是迴文數,否則就不是迴文數。

分析完了上代碼:

class Solution:
    def isPalindrome(self, x: int) -> bool:
        num = abs(x)
        temp = str(num)
        if x<0:
            return False
        else:

            #字符串逆序判斷
            if temp==temp[::-1]:
                return True
            
            
            #顛倒任何一個正數
            res=0
            while num>0:

                res = res * 10 + num % 10
                num = num//10
            
            print(res)
            if x>=0 and res==x:
                return True

            return False

總結:數字反轉是一個常用的操作應該記下來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章