回文数字判断
问题
这个题目说的是,给你一个整数,你要判断它是否是一个回文数字。所谓回文数字就是,你正着读和反着读都是同一个数字。
比如,给你的数字是:
12321
无论你从左向右读,还是从右向左读,都是 12321,所以它是一个回文数字,你要返回 true。
再比如说:
-232
你从左向右读是 -232,但从右向左读则是 232-,和 -232 不一样,因此它不是一个回文数字,你要返回 false。
代码
public class AlgoCasts {
// Time: O(m), Space: O(1)
public boolean isPalindromeString(int x) {
String str = String.valueOf(x);
int i = 0, j = str.length() - 1;
while (i < j) {
if (str.charAt(i) != str.charAt(j)) return false;
++i;
--j;
}
return true;
}
// Time: O(m), Space: O(1)
public boolean isPalindrome(int x) {
if (x < 0) return false;
int tmp = x;
long y = 0;
while (tmp != 0) {
int num = tmp % 10;
y = y * 10 + num;
tmp = tmp / 10;
}
return y == x;
}
}