Easy-09:迴文數

迴文數

PS:不考慮用數字轉字符串的方式

  • 解法一:整數反轉,判斷是否相等。先得到整數的反轉結果,然後判斷反轉結果是否與整數相等即可。但是,沒有考慮溢出問題。
  • 執行用時百分比:81.12%
  • 內存消耗百分比:5.01%
class Solution:
    def isPalindrome(self, x: int) -> bool:
    	# 負數和以 0 結尾的正整數均不是迴文數
        if x < 0 or (x != 0 and x % 10 == 0):
            return False
        reversed_target, target = 0, x
        while target:
            reversed_target = reversed_target  *10 + target % 10
            target //= 10
        return reversed_target == x
  • 解法二:反轉一半數字。爲了解決解法一中的溢出問題,考慮反轉數字的一半。
  • 執行用時百分比:97.00%
  • 內存消耗百分比:5.01%
class Solution:
    def isPalindrome(self, x: int) -> bool:
        if x < 0 or (x != 0 and x % 10 == 0):
            return False
        reversed_target = 0
        while x > reversed_target:
            reversed_target = reversed_target * 10 + x % 10
            x //= 10
        # 需要注意處理數字位數爲奇數的情況
        return x == reversed_target or x == reversed_target // 10
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章