LeetCode OJ 7. Reverse Integer

来源:互联网 发布:浦口区网络问政 编辑:程序博客网 时间:2024/05/18 22:12

题意:输入一个int 数字,翻转数字的顺序。如123,返回321。

要注意int的数据范围防止溢出,1.末尾有零;2.翻转后溢出要输出0.


package edu.jnu;import java.util.Vector;public class Main {    public static void main(String[] args) {// write your code here        Main m = new Main();        System.out.println(m.reverse(-2147483648));    }    public int reverse(int x) {        long xx = x;//int 的范围是 【-2147483648,2147483648-1】,防止下面取相反数溢出        boolean flag = false;//用于标记正负        if(xx < 0){//取相反数            flag = true;            xx = -xx;        }        long ans = 0;        long temp = 0;        while(xx != 0){//按位取出,从个位开始 ,十,百,千,……            temp = xx%10;            xx /= 10;            ans += temp;            if(xx>0){ //如果末尾是0, 如 23340000,返回4332                ans *= 10;            }        }        if(ans > (long) Math.pow(2,31) - 1)//翻转后可能会溢出            ans = 0;        if(flag)            ans = -ans;        return (int)ans;    }}


0 0
原创粉丝点击