Leetcode 9 回文数

Leetcode 9 回文数_第1张图片

bool isPalindrome(int x) {
    if(x < 0 || (x % 10 == 0 && x != 0))                 //<0和首位为0的不符合
    return false;
    int num = 0;                                //num为逆序数
    while(num < x){
        num = num * 10 + x % 10;    //构造逆序数,每次%10取尾数进十位加上一进位/10再%10的尾数
        x = x / 10;                             //x为传入参数,每次都进一位与逆序数num比较,若构造的逆序数>=x,则跳出循环
    }                                           //即比较一半的数字即可
    if(x == num || x == num / 10) return true;  //偶数情况数字对称,可以相等,奇数情况num与x差一个进位
    else return false;
}

你可能感兴趣的:(leetcode,java,算法)