LeetCode_简单类

7.整数反转

2020-11-13  本文已影响0人  爱恨_交加

给出一个32位的有符号的整数,你需要将这个整数中每位上的数字进行反转。

// 示例1
输入:123
输出:321

// 示例2
输入:-123
输出:-321

// 示例3
输入:120
输出:21

注意:假设我们的环境只能存储得下32位的有符号整数,则其数值范围为[-231,231-1]。请根据这个假设,如果反转后整数溢出那么就返回0。

解题

实现

public class Solution {

  public static void main(String[] args) {
    // srcInt典型值可选:0 | 123 | -123 | Integer.MAX_VALUE | Integer.MIN_VALUE
    int srcInt = Integer.MIN_VALUE ;
    System.out.println(reverse(srcInt));
  }

  private static int reverse(int srcInt) {
    /* 
    * 因为题目并没说被反转的数不能为0,所以如果 srcInt == 0,这里也返回0
    */
    int rsInt = 0;
    if(srcInt > 0) {
      while(srcInt != 0) {
        rsInt = rsInt*10 + srcInt%10;
        srcInt /=10;
      }
      rsInt = rsInt < 0 ? 0 : rsInt;
     }else if(srcInt < 0) {
      while(srcInt != 0) {
        rsInt = rsInt*10 + srcInt%10;
        srcInt /=10;
      }
      rsInt = rsInt > 0 ? 0 : rsInt;
    }
  return rsInt;
  }

}
上一篇 下一篇

猜你喜欢

热点阅读