您的位置:首页 > 其它

leetcode-9 Palindrome Number

2016-03-25 16:29 253 查看
Determine whether an integer is a palindrome. Do this without extra space.

http://blog.csdn.net/hcbbt/article/details/44001229

1.可以先转为字符串,再判断。
2.直接算出回文的数再直接比较。  // 发现问题:回文数会出现溢出情况,所以取int高一个量级的long

//////////////////////////////////////////////////////////////////////////
// start: judge whether it is a palindrome

/************************************************************************/
/* method1: turn to int* then judge                                                 */
/************************************************************************/

bool isPalindrome_Convert(int x)
{
    int bit[10]; 
    if(x < 0)  // 负数则不是
        return false;
        int idx = 0;  // 位数
        while(x)
        {
            bit[idx++] = x%10;
            x /= 10;
        }
        for(int i = 0; i < idx/2; i++)
            if(bit[i] != bit[idx-1-i])
                return false;
        return true;
}

/************************************************************************/
/* method2: find its palindrome and judge whether its' self          */
/************************************************************************/

bool isPalindrome_Pair(int x)
{
    long long tmpX = (long long)x;
    long long pair = 0;
    while(tmpX > 0)  // > 0 && != 0
    {
        pair = pair*10 + tmpX%10;
        tmpX /= 10;
    } 
    return pair == (long long)x;
}

// end
//////////////////////////////////////////////////////////////////////////
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: