7. Reverse Integer
- Total Accepted: 153147
- Total Submissions: 644103
- Difficulty: Easy
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
思路:
本题思路很简单,有多种方法:要注意的就是判断反转之后的结果是否超出了int类型的范围。
- 第一种是直接对10取余和除,然后每加一位,就将原先的结果乘以10后加上余数即得从最低位到当前位反转之后的结果。然后将处理后的字符串转化为long类型,判断是否超出了范围,超出则输出0,没有则直接输出结果。
- 第二种是将数转化为String类型,判断index为0的位数是不是负号,若不是,则将整个字符串反转,若是,则将除了第0 位之后的字符串反转,然后将处理后的字符串转化为long类型,判断是否超出了范围,超出则输出0,没有则直接输出结果。
下面的程序只是第一种方法的代码:
1 public int reverse(int x) { 2 long res = 0 ; 3 while(x != 0){ 4 res = res*10 + x%10 ; 5 x = x/10 ; 6 }
//判断是否超出了范围 7 if(res > Integer.MAX_VALUE || res < Integer.MIN_VALUE){ 8 return 0 ; 9 }else{ 10 return (int)res ; 11 } 12 }