题目地址:leetcode-cn.com/problems/pa…
思路:这道题有两种思路:
- 可以把数值转成字符串,然后利用双指针的思路,一个指针从前往后,一个指针从后往前来比较每一个字符是否相等。
- 可以利用数学思想,将传进来的值转换成他自身的回文数,然后和原值进行比较。转换思路是将原值先对10取余,取出个位数,然后将原值除以10,继续这个操作。
上代码:
转字符串思路:
class Solution {
public boolean isPalindrome(int x) {
if(x < 0) {
return false;
}
String str = String.valueOf(x);
int i = 0;
int j = str.length() - 1;
while(i < j) {
if(str.charAt(i) != str.charAt(j)) {
return false;
}
i++;
j--;
}
return true;
}
}
数学思路:
class Solution {
public boolean isPalindrome(int x) {
if(x <0) {
return false;
}
int num = x;
int nowNum = 0;
while(num != 0) {
nowNum = nowNum*10 + num%10;
num = num/10;
}
return x==nowNum;
}
}