[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
}
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
}
相关文章推荐
- 【leetcode】Reverse Integer整数反转----Java代码实现
- 【LeetCode】- Reverse Integer(将一个整数反转)
- LeetCode Reverse Integer 反转整数
- [LeetCode-7] Reverse Integer(反转整数)
- [leetcode] Reverse Integer 反转一个整数
- leetcode——Reverse Integer 反转整数数字(AC)
- (LeetCode)Reverse Integer --- 反转整数
- Leetcode Reverse Integer 反转整数
- [Leetcode] reverse integer 反转整数
- [置顶] [LeetCode] Reverse Integer 整数反转
- 【LeetCode-面试算法经典-Java实现】【007-Reverse Integer(翻转整数)】
- LeetCode7——Reverse Integer(将一个整数反转,注意溢出的处理)
- Leetcode:Reverse Integer ,整数反转
- LeetCode--Reverse Integer(整数反转)Python
- leetcode reverse Integer(反转整数)
- LeetCode 7 :Reverse Integer ---- 反转int整数
- 反转整数的每一位(reverse integer)
- leetcode:Reverse Integer(一个整数反序输出)
- 【LeetCode-面试算法经典-Java实现】【013-Roman to Integer (罗马数字转成整数)】
- C实现 LeetCode->Reverse Nodes in k-Group (双指针大法)(单链表反转)