LeetCode 9. 回文数

577 阅读1分钟

leetcode-cn.com/problems/pa…

思路1:转换为字符串,遍历一半字符串

思路2:不转换为字符串,按下面这个思路并排除一些特殊情况

public boolean isPalindrome(int x) {
    String str = String.valueOf(x);
    for (int i = 0; i < str.length() / 2; i++) {
        int j = str.length() - 1 - i;
        if (str.charAt(i) != str.charAt(j)) {
            return false;
        }
    }
    return true;
}
public boolean isPalindrome(int x) {
    if (x < 0) {
        return false;
    }
    if (x < 10) {
        return true;
    }
    if (x == 10) {
        return false;
    }
    int y = 0;
    while (true) {
        y = y * 10 + x % 10;
        if (y == 0) {
            return false;
        }
        x = x / 10;
        if ((x == y) || (x > y && x / 10 == y)) {
            return true;
        }
        if (x < y) {
            return false;
        }
    }
}