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
原创粉丝点击