22 June 2014

Reverse Integer

Reverse digits of an integer.

Example1: x = 123, return 321 Example2: x = -123, return -321

解法:O(1)的存储空间。题目还提示考虑,如果数字溢出了怎么办,如果16位整数10009等,但题目没有这样的测试用例,本题无需考虑(真有溢出就是设置一些标记为判断)。

这里可以用两种方法判断int型溢出。

  1. long long保存下面的k,然后循环中判断k>MAXINT
  2. x*10再除以10,判断前后是否相等。

代码如下:

//{java}
public class Solution {
public int reverse(int x) {
    boolean isPositive = true;
    if(x<0)
    {
        isPositive = false;
        x*=-1;
    }
    int k=0;
    while(x!=0)
    {
        int t=x%10;
        x/=10;
        k=k*10+t;
    }
    if(!isPositive)
        k*=-1;
    return k;
} }


blog comments powered by Disqus