题目 回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
进阶:
你能不将整数转为字符串来解决这个问题吗?
解答
思路:
回文数的特点很明显,都大于零,且,都是标准的轴对称。那很简单,整个字符串长度除以2就可得对称轴所在位置了。
那我的思路就是 先获取输入数字的长度,判断一下奇偶,再除以2取整得到轴的index,
接着判断,用字符串切片的想法,把轴之前的 和 轴之后 的字符串切出来对比(轴之后的倒序才和轴之前的一样),如果一样,则对称
话不多说,请代码
class Solution:
def isPalindrome(self, x: int) -> bool:
if x>=0:
str1=str(x)
index1=len(str1)//2
if len(str1)%2==0:
if str1[0:index1]==str1[:index1-1:-1]: