版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
时间: 2019-10-12 12:03 AM
题目地址: https://leetcode.com/problems/palindrome-number/
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.
Solution 1:
public boolean isPalindrome(int x) {
if(x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
int y = 0;
while(x > y) {
y = y * 10 + x % 10;
x /= 10;
}
return x == y || x == y / 10;
}
Runtime: 7 ms, faster than 65.57% of Java online submissions for Palindrome Number.
Memory Usage: 36.1 MB, less than 5.02% of Java online submissions for Palindrome Number.
Solution 2:
public boolean isPalindrome(int x) {
if(x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
char[] chars = String.valueOf(x).toCharArray();
int start = 0;
int end = chars.length - 1;
while(start < end) {
if (chars[start++] != chars[end--]) {
return false;
}
}
return true;
}
Runtime: 8 ms, faster than 40.24% of Java online submissions for Palindrome Number.
Memory Usage: 36.3 MB, less than 5.02% of Java online submissions for Palindrome Number.