LeetCode习题解析——Palindrome Number
2018-04-07 本文已影响6人
Kindem
发布自Kindem的博客,欢迎大家转载,但是要注意注明出处
问题
判断一个整数是否为回文数,不能使用辅助空间
一些提示:
负整数可以是回文数吗?(例如 -1)
如果你打算把整数转为字符串,请注意不允许使用辅助空间的限制。
你也可以考虑将数字颠倒。但是如果你已经解决了 “颠倒整数” 问题的话,就会注意到颠倒整数时可能会发生溢出。你怎么来解决这个问题呢?
本题有一种比较通用的解决方式。
解答
解题思路:
- 负整数肯定不是回文数
- 0一定是回文数
- 正整数中判断是不是回文数,只需要求出其颠倒过来的数,并看两者是不是相等,相等则是回文数,否则则不是
java代码:
public class Solution {
public boolean isPalindrome(int x) {
// 如果x是负整数
if (x < 0) return false;
// 如果x是0
else if (x == 0) return true;
else {
int backup = x;
int y = 0;
while (x != 0) {
y = y * 10 + x % 10;
x = x / 10;
}
return (y == backup);
}
}
}