小白刷题——回文数
作者:互联网
JAVA小白自学中
回文数
题目
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
标题示例
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
代码
class Solution {
public boolean isPalindrome(int x) {
if (x<0){
return false;
}
if (x%10==0&&x!=0){
return false;
}
int a,b;
b=0;
for (int i = x; i != 0; i = i / 10) {
a = i % 10;
if (i < 10) {
b = b + a;
} else {
b = (a + b) * 10;
}
}
if (b==x){
return true;
}
return false;
}
}
解题思路
判断一个整数是否是回文数。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
根据要求
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
故先将x<0的数直接排除在外
然后根据要求
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
故先将x能被10整除又不等于0的数直接排除
做完前面两步现在就是比较x与其反转过来的数了
a:对10取余,储蓄本轮数据;
b:保存上一轮数据;
i:循环判断保存X的值并判断X与除10(步进)
输出异常为false,要不然最后一个if无用
声明
以上内容为本人对此题的处理方法
若有侵权,请在下方回复中举证并@本人删除文章
本人小白一枚,自学的JAVA
愿大家都能找到比我更加优秀的方法
在此鸣谢
leetcode平台与CSDN平台的支持
还有各位的捧场
标签:10,false,示例,小白刷题,121,从右,回文 来源: https://blog.csdn.net/weixin_53188968/article/details/110506623