No.007:Reverse Integer
问题:
Reverse digits of an integer.
Example1:
x = 123, return 321
Example2:
x = -123, return -321
官方难度:
Easy
翻译:
将一个整数倒转输出。
例子:
整数:123,倒转输出:321。
整数:-123,倒转输出:-321。
- 给定例子中,存在负数情况,将负数的输入转化成整数统一讨论,同时记录负数标志位,在返回时使用。
- 优先获取整数的位数,有两种方法:第一种是根据定义出发,循环将输入数字除以10,累加次数。这种方法需要使用一个输入数字的副本,因为在运行过程中会改变输入的值,影响之后的操作;第二种方法,是将输入数字转化成字符串,计算字符串的长度length。显然第二种“取巧的方式”拥有更好的效率。
- 定义一个sum值累加,将每一次的输入值的最后一位乘以10的length-1次方,然后将输入除以10,直到循环结束。
- 在提交代码之后,发现一个隐藏条件,当倒转的整数超过int所能表达的最大值时该怎么办?要求方法的返回值明确为int值。LeetCode提示我,这种情况返回0。那么就需要将sum升级为long型来存储数字,再返回的时候做一次判断。
- 在考虑相反数的时候,有一种极端情况:输入值为Integer.MIN_VALUE。众所周知,负数能表达值的绝对值,比正数的最大值还要大1,这时候对它做相反数操作,这个值是不会变的。万幸,这个数的最后一位是8,这表示在倒转之后的值是0,不用再特殊考虑。
- 没有入参检查的必要。
解题代码:
public static int reverse(int x) {
// 正负的标志位
int sign = 1;
// 考虑负数转化
if (x < 0) {
x = -x;
sign = -1;
}
long sum = 0;
// 先获取位数
int length = String.valueOf(x).length();
// 取余数,乘以因子累加
while (x > 0) {
// 要先减length
sum += (x % 10) * Math.pow(10, --length);
x /= 10;
}
return sum > Integer.MAX_VALUE ? 0 : (int) sum * sign;
}
reverse
相关链接:
https://leetcode.com/problems/reverse-integer/
PS:如有不正确或提高效率的方法,欢迎留言,谢谢!
No.007:Reverse Integer的更多相关文章
- LeetCode第[7]题(Java):Reverse Integer 标签:数学
题目:Reverse Integer 难度:Easy 题目内容: Given a 32-bit signed integer, reverse digits of an integer. Note:A ...
- leetcode:Reverse Integer(一个整数反序输出)
Question:Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 ...
- LeetCode之“数学”:Reverse Integer && Reverse Bits
1. Reverse Integer 题目链接 题目要求: Reverse digits of an integer. Example1: x = 123, return 321 Example2: ...
- leetcode:Reverse Integer 及Palindrome Number
Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, retur ...
- Q7:Reverse Integer
7. Reverse Integer 官方的链接:7. Reverse Integer Description : Given a 32-bit signed integer, reverse dig ...
- LeetCode专题-Python实现之第7题:Reverse Integer
导航页-LeetCode专题-Python实现 相关代码已经上传到github:https://github.com/exploitht/leetcode-python 文中代码为了不动官网提供的初始 ...
- 【LeetCode算法题库】Day3:Reverse Integer & String to Integer (atoi) & Palindrome Number
[Q7] 把数倒过来 Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Outpu ...
- lintcode :reverse integer 颠倒整数
题目: 颠倒整数 将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数). 样例 给定 x = 123,返回 321 给定 x = -123,返回 -321 解题: 直接 ...
- Reverse Integer 2015年6月23日
题目: Reverse digits of an integer. Example1: x = , return Example2: x = -, return - 思路:递归 解答: / test ...
随机推荐
- 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理
系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)— ...
- 在drawable 画胶囊状
<solid android:color="@color/colorAccent"></solid> <corners android:radius= ...
- PHP SESSION机制,从存储到读取
PHP中,如果要获取SESSION数据,必须要有对应的session_id,session_id的获取方式有两种 1.基于客户端的cookie 2.基于url 先说第一种情况,基于客户端的cookie ...
- Ado net Source 用法
Ado net Source 是用于获取数据源的,使用的connection manager是 ado net connection. Ado Net Source 的Data Access Mode ...
- Android ImageView图片透明区域不响应点击事件,不规则图片透明区域响应点击事件
转载:http://blog.csdn.net/aminfo/article/details/7872681 经常会在项目中用到透明图片,不规则图片,特别是做游戏的时候,需要对图片的透明区域的点击事件 ...
- Android okHttp网络请求之Get/Post请求
前言: 之前项目中一直使用的Xutils开源框架,从xutils 2.1.5版本使用到最近的xutils 3.0,使用起来也是蛮方便的,只不过最近想着完善一下app中使用的开源框架,由于Xutils里 ...
- 将 instance 连接到 vlan100- 每天5分钟玩转 OpenStack(95)
上一节我们创建了 vlan100,今天将部署两个 instance 到 vlan 并验证其连通性. 同时我们也将讨论底层网络结构的变化. launch 新的 instance "cirros ...
- ASP.NET MVC之视图生成URL(二)
前言 上一节我们讲述了MVC中从控制器到视图传递数据的四种方式,想必大家早已掌握了,那我们继续往下走. 话题 在MVC的Web应用程序中,我们经常会出现这样的操作,从一个视图跳转到另外一个视图,大部分 ...
- 通过setTimeout来取消因大量计算造成的网页卡顿
js是单线程的,所以有些大量计算的操作会占用线程资源,导致页面卡住. 今天遇到这样一个场景,选择一个下拉框之后,对数据进行筛选,这个过程中有大量计算,点了selecte的option之后,option ...
- 【解决】查询无法完成,因为其包含的查找列数已超过管理员强制实施的查找列阈值。Error code=0x80070093; Error source=Groove
前因: 修改了SharePoint Server 2013 下面的文档库的名称,原先2个汉字,现在8个汉字.结果,SkyDrive Pro 就无法同步了,无论是停止重新同步还是手动填写进行同步都不可以 ...