LeetCode之回文数(九)
【摘要】 目录
题目
解题
题目
(原题链接:https://leetcode-cn.com/problems/palindrome-number)
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121 输出: true 示例 2:
输入: -121 输出: false 解释: ...
目录
题目
(原题链接:https://leetcode-cn.com/problems/palindrome-number)
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
解题
分析:通过题目的示例,我们知道了负数和个位数是0的情况属于非回文数,但是同时我们应该注意到0是一个特殊的边界值,是个位数为0的非回文数中的特例,0其实是一个回文数。剩下的情况就比较正常了,具体请看代码。
代码:
-
class Solution {
-
public:
-
bool isPalindrome(int x) {
-
if (x < 0 || x % 10 == 0 && x != 0) { // 注意特殊边界值0
-
return false;
-
}
-
int rev = 0; // 记录反转过来的数字
-
while (x > rev) {
-
rev = rev * 10 + x % 10;
-
x = x / 10;
-
}
-
if (x == rev || x == rev/10) { // 考虑奇偶位数的两种情况
-
return true;
-
} else {
-
return false;
-
}
-
}
-
};
执行结果:
文章来源: liuzhen.blog.csdn.net,作者:Data-Mining,版权归原作者所有,如需转载,请联系作者。
原文链接:liuzhen.blog.csdn.net/article/details/106743391
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)