Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321java
输入一个整数对其进行翻转git
经过求余数求商法进行操做。算法
public class Solution { public int reverse(int x) { long tmp = x; // 防止结果溢出 long result = 0; while (tmp != 0) { result = result * 10 + tmp % 10; tmp = tmp / 10; } // 溢出判断 if (result < Integer.MIN_VALUE || result > Integer.MAX_VALUE) { result = 0; } return (int) result; } }
第一种方法:app
[java] view plain copy函数
思路:spa
(1)这道算法题属于OJ中比较简单的题目。题意是将给定的整数逆序,可是涉及到几种特殊状况须要考虑。.net
(2)为了便于处理,将整数转为字符串。咱们只须要遍历一次该字符串便可。code
(3)在遍历的过程当中,须要对正负数进行判断,当字符串长度大于0时,先取第一个字符进行判断,看其是否等于‘-’,若是相等blog
就是负数,须要设置一个标志位。ip
(4)在继续遍历的过程当中,只需判断字符是否为数字(显然都是),而后经过标志位判断正负后进行累加操做。
(5)须要注意的时,翻转后的的整数可能会超过int的最大值,为了防止越界,咱们定义的sun的类型必须为long,这样当大于或
者小于int的最大值和最小值时就返回0;其他状况直接将long强转为int,并返回结果。
(6)注意上述几个方面后,OJ经过确定没问题。
算法实现代码以下所示(但愿对你有所帮助,谢谢):
[java] view plain copy
第二种方法:
[java] view plain copy