leetcode Reverse Integer

来源:互联网 发布:怎么查看我的淘宝等级 编辑:程序博客网 时间:2024/05/29 18:53

题目链接点击打开链接


这个题加了可能溢出的情况之后真的复杂。不过我属于用作弊的方法把这个题目做出来了。

public class Solution {public int reverse (int x) { long xx=x;if(xx==0){return (int)xx;}boolean neg=false;if(xx<0){neg=true;xx=-xx;}int length=(int)Math.log10(xx)+1;long numbers[]=new long[length];for(int i=length-1;i>=0;i--){numbers[i]=xx%10;xx/=10;}long result=0L;int power=1;for(int i=0;i<length;i++){result+=numbers[i]*power;power*=10;}if(result>Integer.MAX_VALUE){return 0;}if(neg){return -(int)result;}else{return (int)result;}}    }


下面是判断相加溢出的方法

(1)无符号整数相加
int uadd_ok(unsigned x, unsigned y)
{
   unsigned z = x + y;
   if(z < x)
      return 0;
    return 1;
}
 
(2) 有符号整数相加,这个要复杂一些
int add_ok(int x, int y)
{
   int z = x + y;
   if(x > 0 && y > 0 && z < 0)
      return 0;  
   if(x < 0 && y <  0 && z > 0)
      return 0;
    return 1;
}



0 0
原创粉丝点击