题目地址:https://leetcode.com/problems/palindrome-number/description/
题目要求:
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.
Follow up:
Coud you solve it without converting the integer to a string?
算法思路:
第一种思路:把数字转化为字符串,再通过字符来做。
题目代码:
class Solution {
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
String strX = String.valueOf(x);
int length = strX.length();
int left = length / 2 - 1;
int right = length % 2 == 0 ? left+1 : left + 2;
while (left >= 0){
if(strX.charAt(left) != strX.charAt(right)){
return false;
}
left--;
right++;
}
return true;
}
}
11508 / 11508 test cases passed.
Status: Accepted
Runtime: 322 ms
第二种思路:直接通过数字的反转来做
public boolean isPalindrome(int x) {
int y = x;
if (x < 0) {
return false;
}
int result = 0;
while(x !=0){
if (result*10 + x%10>Integer.MAX_VALUE){
return false;
}
result = result*10 + x%10;
x = x/10;
}
return result == y;
}
11508 / 11508 test cases passed. | Status: Accepted |
---|---|
Runtime: 268 ms |
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有