Reverse Integer(反转整型数)
2016-12-12 16:58
169 查看
Reverse digits of an integer.(反转一个整型数)
Example1: x = 123, return 321
Example2: x = -123, return -321
1.个人分析
思路一:整型数转字符串->反转字符串->字符串转整型
思路二:数学解法,不断地进行整除和取余运算。
2.个人解法
(1)
(2)
3.参考解法
(1)
(2)
该解法使用Python实现,只用了三行代码,思路是和思路一类似的。
4.总结
该题比较简单,但需注意处理溢出的情况。另外前两种解法是基于字符串操作实现的,没有数学解法简洁,但提供了一个比较常用的字符串与整型之间相互转换的方式。
PS:
题目的中文翻译是本人所作,如有偏差敬请指正。
其中的“个人分析”和“个人解法”均是本人最初的想法和做法,不一定是对的,只是作为一个对照和记录。
Example1: x = 123, return 321
Example2: x = -123, return -321
1.个人分析
思路一:整型数转字符串->反转字符串->字符串转整型
思路二:数学解法,不断地进行整除和取余运算。
2.个人解法
(1)
int reverse(int x) { int sign = 1; if(x < 0){ sign = -1; x = -x; } //整型转字符串并反转字符串 string str= to_string((long long)x); string rstr; string::reverse_iterator rit=str.rbegin(); for(; rit != str.rend(); ++rit) rstr.push_back(*rit); //将字符串转换为整型 long long res; istringstream iss(rstr); iss >>res; //溢出处理 if(res > INT_MAX || res < INT_MIN) return 0; return res * sign; }
(2)
int reverse(int x) { int sign = 1; if(x < 0){ sign = -1; x = -x; } long long res = 0; string str = to_string((long long)x); for(string::reverse_iterator rit=str.rbegin(); rit != str.rend(); ++rit){ res = res * 10 + (*rit - '0'); } if(res > INT_MAX || res < INT_MIN) return 0; return res * sign; }
3.参考解法
(1)
int reverse(int x) { long long res = 0; while (x){ res = res * 10 + x % 10; x /= 10; } return (res > INT_MAX || res < INT_MIN) ? 0 : (int)res; }
(2)
class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ s = cmp(x, 0) #x > 0,s=1; x < 0,s=-1 r = int(`s*x`[::-1]) #先将字符串反转,然后将字符串转换为整型 return s*r * (r < 2**31) #r < 2**31为真时返回1,否则返回0;2**31表示2的31次方
该解法使用Python实现,只用了三行代码,思路是和思路一类似的。
4.总结
该题比较简单,但需注意处理溢出的情况。另外前两种解法是基于字符串操作实现的,没有数学解法简洁,但提供了一个比较常用的字符串与整型之间相互转换的方式。
PS:
题目的中文翻译是本人所作,如有偏差敬请指正。
其中的“个人分析”和“个人解法”均是本人最初的想法和做法,不一定是对的,只是作为一个对照和记录。
相关文章推荐
- 实现一个int整型数字的反转
- 整型反转 如-123反转成-321
- Reverse Integer--整数的反转
- 整型反转
- 反转整型
- LeetCode算法题:JAVA实现整数反转reverse integer
- 数组反转(整型数组)
- python用递归实现反转一个整型数(记2017腾讯测试工程师面试)
- reverse-integer(反转整型)
- 7. Reverse Integer(反转整型) —— Java
- C语言字符串反转函数
- 不使用库函数 字符串与整型 转换
- C语言中short整型数据的范围-32768----32767是中的-32768是如何确定的
- [LeetCode]7 Reverse Integer
- leetcode 刷题之路 60 Reverse Integer
- 字符串转换为整型
- hdu 3584 二进制0,1反转 三维树状数组 及三维树状数组模板
- 算术转化和整型提升的奥秘
- Leetcode练习- Reverse Integer
- 小菜学习设计模式(五)—控制反转(Ioc)