9. 回文数 - LeetCode
9. 回文数
反转字符串
class Solution {
public boolean isPalindrome(int x) {
return String.valueOf(x).equals(new StringBuilder().append(x).reverse().toString());
}
}
利用自带的方法反转字符串,速度较慢。
转String逐个判断
class Solution {
public boolean isPalindrome(int x) {
String s = String.valueOf(x);
int n = s.length();
int i = 0, j = n - 1;
while(i <= j){
if(s.charAt(i++) != s.charAt(j--)){
return false;
}
}
return true;
}
}
将数字转成String,从两边逐个判断是否回文。
翻转一半
class Solution {
public boolean isPalindrome(int x) {
if (x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
int reverse = 0;
while(x > reverse){
reverse = reverse * 10 + x % 10;
x /= 10;
}
return x == reverse || x == reverse / 10;
}
}
直接在数字上操作,将后一半翻转后与前一半对比。这里需要注意有负号的情况以及有前缀0的情况,最后判断的时候也要考虑位数是奇数的情况。

浙公网安备 33010602011771号