LeetCode第9题,难度是简单。
原题地址:https://leetcode-cn.com/problems/palindrome-number/
题目描述:
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
解题思路:
比较直接的办法就是把整数转换成字符串之后,判断它是不是一个回文字符串,我这里当然也是这么写的,不过比较粗暴,这个也可以有更快的方式。
不过毕竟题目描述里面其实是说能不能不用将数字转成字符串的方式的,所以提供了第二种方式,直接比较数字的。
直接比较数字的话,也就是直接比较数字前半边和后半边是否是相反即可。因为如果将数字反转过来比较,可能会整数溢出。所以最好的方式是分别取半边进行比较,不管长度是奇数还是偶数,只要前后半边是相反的,就肯定是回文数字。这个过程也就是不停的取模和除法的过程,需要不断地获取前半边的数字和后半边的数字做比较。
中文官网题解:
https://leetcode-cn.com/problems/palindrome-number/solution/
个人题解:
public class Solution {
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
String str = Integer.toString(x);
for (int i = 0; i < str.length() / 2 + 1; i++) {
if (str.charAt(i) != str.charAt(str.length() - i - 1)) {
return false;
}
}
return true;
}
}
结果:
根本看不到自己的踪影。不过我相信三年前的时候,坐标轴上还是能看到自己的...