c_cpp 确定整数是否是回文。这样做没有额外的空间。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 确定整数是否是回文。这样做没有额外的空间。相关的知识,希望对你有一定的参考价值。

// ============ not sure which one is right =========
bool is_palindrome(int x) {
    int y = 1;
    while(x/y >= 1) y *= 10;    // gist0, cannot forgot =
    y /= 10;
    while(x != 0) {
        int high = x / y;
        int low = x % 10;
        if(high != low) return false;
        x /= 10;    // gist1
        x %= y;     // gist2, note, gist1 and gist2 cannot exchange place.
    }
    return true;
}


// ==================
bool is_number_palindrome(int n) {
    if(n < 10) return true;
    int f = 1;
    while(10 * f < n) f *= 10;
    
    while(n >= 10) { //  should be n >= 10 not n
        int left_digit = n/f, right_digit = n%10;
        if(left_digit != right_digit) return false;
        n %= f;
        n /= 10;
        f /= 100;
    }
    return true;
}

以上是关于c_cpp 确定整数是否是回文。这样做没有额外的空间。的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode记录之9——Palindrome Number

No.009:Palindrome Number

回文数

[LeetCode] 9. Palindrome Number

LeetCode:回文数

LeetCode 9. 回文数 [Palindrome Number (Easy)]