Leetcode_7_Reverse Integer
来源:互联网 发布:淘宝护肤品店铺装修 编辑:程序博客网 时间:2024/05/16 11:05
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41578077
Reverse Integer
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
思路:
(1)这道算法题属于OJ中比较简单的题目。题意是将给定的整数逆序,但是涉及到几种特殊情况需要考虑。
(2)为了便于处理,将整数转为字符串。我们只需要遍历一次该字符串即可。
(3)在遍历的过程中,需要对正负数进行判断,当字符串长度大于0时,先取第一个字符进行判断,看其是否等于‘-’,如果相等
就是负数,需要设置一个标志位。
(4)在继续遍历的过程中,只需判断字符是否为数字(显然都是),然后通过标志位判断正负后进行累加操作。
(5)需要注意的时,翻转后的的整数可能会超过int的最大值,为了防止越界,我们定义的sun的类型必须为long,这样当大于或
者小于int的最大值和最小值时就返回0;其余情况直接将long强转为int,并返回结果。
(6)注意上述几个方面后,OJ通过肯定没问题。
算法实现代码如下所示(希望对你有所帮助,谢谢):
public static int reverse(int x) {String s = String.valueOf(x);long sum = 0;boolean isnegitive = false;for (int i = s.length()-1; i >=0 ; i--) {if(s.charAt(0)=='-'){isnegitive = true;}if( Character.isDigit(s.charAt(i))){if(isnegitive){sum = sum * 10 - Integer.parseInt(String.valueOf(s.charAt(i)));}else{sum = sum * 10 + Integer.parseInt(String.valueOf(s.charAt(i)));}}} if(sum>Integer.MAX_VALUE || sum<Integer.MIN_VALUE){ return 0;} return (int)sum;}
2 0
- Leetcode_7_Reverse Integer
- leetcode_7_Reverse Integer
- leetcode_7_Reverse Integer
- LeetCode_7_Reverse Integer
- Integer
- Integer
- Integer
- Integer
- Integer
- Integer
- Integer
- Integer
- Integer
- Integer
- Integer
- Integer
- Integer
- Integer.valueof() Integer.parseInt()
- poj 2932 Coneology
- 我的Java程序查错之路
- C/C++中各种类型int、long、double、char表示范围(最大最小值)
- FreeRadius安装配置
- hibernate设置日期默认值
- Leetcode_7_Reverse Integer
- hdu1423(最长上升公共子序列)
- Mecanim动画系统 - 使用Blend Trees控制角色动作
- hdu4512(最长上升公共子序列变形)
- Raspberry pi,一个好玩的派:第四季 NOOBS
- 二分搜索技术
- js正则表达exec与match的区别说明
- BZOJ 1911 APIO 2010 特别行动队 斜率优化DP
- javascript 函数和内置对象