码迷,mamicode.com
首页 > 其他好文 > 详细

No.007:Reverse Integer

时间:2016-09-27 15:10:01      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

题目:

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             // 要先减maxLevel
20             sum += (number % 10) * Math.pow(10, --maxLevel);
21             number /= 10;
22         }
23         return sum * flag;
24     }
View Code

 测试代码地址:

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

标签:

原文地址:http://www.cnblogs.com/jing-an-feng-shao/p/5912586.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!