首页 > 代码库 > No.007:Reverse Integer
No.007:Reverse Integer
题目:
Reverse digits of an integer.
Example1:
x = 123, return 321
Example2:
x = -123, return -321
官方难度:
Easy
翻译:
倒转整数。
例子:
输入123,返回321;输入-123,返回-321。
思路:
1.既然是倒转整数,拿倒转字符串的思路虽然能做,但应该不是原题想要的结果,而且效率应该也会差一点。
2.优先获得输入整数的最高位数,使用取余的方式乘以10的对应次方,循环累加。
解题中可能遇到的困难:
1.负数需要转成正数来特殊处理。
解题代码:
1 private static int method(int number) { 2 // 正负的标志位 3 int flag = 1; 4 // 考虑负数转化 5 if (number <= 0) { 6 number = -number; 7 flag = -1; 8 } 9 int sum = 0;10 // 先获取最高位,准备一个副本11 int maxLevel = 0;12 int temp = number;13 while (temp > 0) {14 temp /= 10;15 maxLevel++;16 }17 // 取余数,乘以因子累加18 while (number > 0) {19 // 要先减maxLevel20 sum += (number % 10) * Math.pow(10, --maxLevel);21 number /= 10;22 }23 return sum * flag;24 }
测试代码地址:
https://github.com/Gerrard-Feng/LeetCode/blob/master/LeetCode/src/com/gerrard/algorithm/easy/Q007.java
LeetCode题目地址:
https://leetcode.com/problems/reverse-integer/
PS:如有不正确或提高效率的方法,欢迎留言,谢谢!
No.007:Reverse Integer
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。