一.问题描述
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例1:
输入:x = 121
输出:true
示例2:
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例3:
输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
二.解题思路
最开始的一个想法是将整数x反转,然后与整数x相比较,但是这里考虑到数太大,便反转一半,考虑边界值,小于0的自然不是回文数,还有就是10的倍数也不可能,因为数值的第一个数字不能为0(这里排除了0),如果为0,0也是回文数。
class Solution { public boolean isPalindrome(int x) { int number=0; if(x==0) return true; if(x<0) return false; if(x%10==0) return false; while(number<x){ number=number*10+x%10; x=x/10; } if(number==x||number/10==x) return true; return false; }}
三.总结
每一次的总结都是对自己最好的奖励。嗖嗖
本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情