package leet;
import java.util.LinkedList;
import java.util.Queue;
public class ReverseInteger {
public static void main(String[] args)
{int number=-12355;
int fannumber=new ReverseInteger().reverse(number);
System.out.println(fannumber);
}
public int reverse(int x) {
Queue<Integer> zheng=new LinkedList<Integer>();
int count=0;
int sum=0;
while(x!=0)
{
int num=x%10;
zheng.add(num);
x=x/10;
count++;
}
for(int j=count;j>0;j--)
{
int temp=zheng.poll();
int i=j;
int h=1;
while(i>1)
{
h=h*10;
i--;
}
sum=temp*h+sum;
}
return sum;
}
import java.util.LinkedList;
import java.util.Queue;
public class ReverseInteger {
public static void main(String[] args)
{int number=-12355;
int fannumber=new ReverseInteger().reverse(number);
System.out.println(fannumber);
}
public int reverse(int x) {
Queue<Integer> zheng=new LinkedList<Integer>();
int count=0;
int sum=0;
while(x!=0)
{
int num=x%10;
zheng.add(num);
x=x/10;
count++;
}
for(int j=count;j>0;j--)
{
int temp=zheng.poll();
int i=j;
int h=1;
while(i>1)
{
h=h*10;
i--;
}
sum=temp*h+sum;
}
return sum;
}
}
以上是队列方法。注意:处理整数的问题一般需要注意两点:1.符号;2.整数越界。
public int reverse(int x) {
2 if(x==Integer.MIN_VALUE)
3 return Integer.MIN_VALUE;
4 int num = Math.abs(x);
5 int res = 0;
6 while(num!=0){
7 if(res>(Integer.MAX_VALUE-num%10)/10)//非常巧妙的判断了越界问题
8 return x>0?Integer.MAX_VALUE:Integer.MIN_VALUE;
9 res = res*10+num%10;
10 num /= 10;
11 }
12 return x>0?res:-res;
13 }