回文数Python解法
生活随笔
收集整理的這篇文章主要介紹了
回文数Python解法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你一個整數 x ,如果 x 是一個回文整數,返回 true ;否則,返回 false 。
回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。例如,121 是回文,而 123 不是。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/palindrome-number
?
例:
輸入:x = 121
輸出:true
輸入:x = -121
輸出:false
解釋:從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個回文數。
# 1 雙指針。兩個指針指向中心,然后像兩端遍歷。
class Solution:def isPalindrome(self, x: int) -> bool:if x < 0:return Falses = str(x)length = len(s)left, right = 0, 0if length & 1 == 1:left, right = int(length//2), int(length//2)else:left, right = int(length/2-1), int(length/2)while left >= 0 and right < length:if left == 0 and right == length - 1:if s[left] == s[right]:return Trueif s[left] != s[right]:return Falseleft -= 1right += 1# 2 直接Python正反遍歷即可:若正反遍歷相同則代表是回文數
class Solution(object):def isPalindrome(self, x):""":type x: int:rtype: bool"""return x>-1 and str(x)[::-1]==str(x)# 3 在不將整數轉換成字符串的情況下解決。使用除余。
class Solution(object):def isPalindrome(self, x):""":type x: int:rtype: bool"""if x < 0:return Falseyu, y, x2 = 0, 0, x # 余數,翻轉后的結果,當前xwhile x2 != 0:yu = x2%10 # 求余y = y*10 + yu # 計算翻轉x2 = x2//10 # x右移一位return y==x總結
以上是生活随笔為你收集整理的回文数Python解法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推进人体实验 马斯克脑机接口公司开始寻找
- 下一篇: 整数转罗马数字Python解法