首页 > 代码库 > Leetcode Reverse Integer

Leetcode Reverse Integer

对于这一道题乍一看比较简单,但实际操作中要考虑到是否有溢出,因此操作的结果应存在一个long类型的变量中,然后检测该变量是否溢出,若溢出则为0;

 1 package ReverseInteger; 2  3 import java.util.ArrayList; 4 import java.util.List; 5  6 public class ReverseInteger { 7  8     /** 9      * @param args10      */11      public static int reverse(int x) {12            int i=1;13            long result=0;14            int max = 0x7FFFFFFF;  //int最大值  15            int min = 0x80000000;16            List <Integer>list=new ArrayList<Integer>();17            while(x/i>=10||x/i<=-10){18                i*=10;19            }20            int j=i;21            while(x>0||x<0){22            list.add(x%10);23            x=x/10;24            } 25            for(int a:list){26                result+=(long)a*j;27               // System.out.println(result);28             if (result> max || result < min)   //溢出处理  29                 {  30                     result = result > 0 ? 0 :0;   31                     //System.out.println("^^^^^^^^^^^^");32                     return (int)result;33                 }  34              j=j/10;35            }36            return (int)result;37          38         }39     public static void main(String[] args) {40         // TODO Auto-generated method stub41       int j=reverse(1563847412);42       System.out.println(j);43       44       45     }46 47 }

 

Leetcode Reverse Integer