您的位置:首页 > 其它

[leetcode 7] Reverse Integer(整数反转) c函数实现

2017-03-22 18:58 393 查看
[leetcode 7]

Description:

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321
Note:

The input is assumed to be a 32-bit signed integer. Your function should
return 0 when the reversed integer overflows
.

思路:将 int -->char[ ] -->long(解决反转溢出)-->int

int reverse(int x) {

        char string[11];  //max sign integer is  2147483647  . 11 bits is enough ,'\0' use 1 bit

        int length;  //store input integer bits

        long result;   

        char temp;  //for string swap

        int i, sign;  

        sign = x>0?1:-1;

        if(sign < 0)

            x = abs(x);  //negative num convert positive for deeling

        sprintf(string, "%d", x);

        length = strlen(string);

        if(length == 1)

            return x;

        for(i=0; i< length/2; i++)  //reverse char array

        {

            temp = string[i];

            string[i] = string[length - i -1];

            string[length - i -1] = temp;

        }

        result = atol(string);    //char convert to long to deel with reverse overflow

        if(sign* result > 2147483647 || sign* result < -2147483648)  
//overflow return 0

            return 0;

        return (int)sign*result;  //long convert int return

 

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