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