Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
Example 1:
Input: 121 Output: true
Example 2:
Input: -121 Output: false Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
Example 3:
Input: 10 Output: false Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
判断一个数是不是回文。核心:回文意味着对称,所以只要能验证这个数是不是对称的即可。
方法一:
public static boolean isPalindrome(int x) {
if(x < 0) {
return false;
}
if(x >= 0 && x < 10) {
return true;
}
String str = x + "";
int preIndex = 0;
int tailIndex = str.length() - 1;
while(tailIndex >= preIndex) {
//验证首尾指针指向的数字是否相等
if(str.charAt(tailIndex) != str.charAt(preIndex)) {
return false;
}
tailIndex--;
preIndex++;
}
return true;
}
方法二:
public static boolean isPalindromeV2(int x){
if(x < 0)
return false;
if(x == 0)
return true;
if(x % 10 == 0)
return false;
int ret = 0;
while (x > ret) {
//反序重建x
ret = ret * 10 + x % 10;
if(ret != x)
x /= 10;
}
return x == ret;
}
本文介绍了一种判断整数是否为回文的方法,通过字符串转换和双指针技术,或者通过反转数字进行对比,提供了两种实现方式,帮助读者理解和实现回文数的判断逻辑。
843

被折叠的 条评论
为什么被折叠?



