9.回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121
输出:true
示例 2:
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
示例 4:
输入:x = -101
输出:false
思路1:转成字符串,双向指针进行判断
class Solution:
def isPalindrome(self, x: int) -> bool:
str1 = str(x)
le = len(str1)
for i in range(le//2):
if str1[i] != str1[le-1-i]:
return False
return True
思路二:进阶,不使用转字符串方式。
class Solution:
def isPalindrome(self, x: int) -> bool:
if x < 0 or (x!=0 and x%10 == 0):
return False
elif x == 0:
return True
else:
rev_num = 0
while x > rev_num:
rev_num = rev_num*10 + x%10
x = x//10
#奇数rev_num//10 == x
if rev_num == x or rev_num//10 == x:
return True
else:
return False
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100104.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...