leetcode-9 Palindrome Number

Determine whether an integer is a palindrome. Do this without extra space.
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
//
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值