数字操作 —— 7_整数反转

1. 7_整数反转
/*
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
输入: 123 -123 120
输出: 321 -321 21
如果反转后整数溢出那么就返回 0。
*/
/**
 * 求余(判断是否溢出有多种方式) o(log(n))
 */
class Solution {
    public int reverse(int x) {
        long sum = 0;
        while(x != 0){
            sum *= 10;
            sum += (x%10);
            x /= 10;
        }
        return (int)sum == sum ? (int)sum : 0;
    }
}

/**
 * 转成String o(n) 捕获异常判断是否溢出
 */
public class Solution {
    public int reverse(int x) {
        String s = String.valueOf(x);
        String rs = "";
        boolean f = false;
        for (int i = s.length() - 1; i >= 0; i--) {
            if (s.charAt(i) == '-') {
                f = true;
            } else {
                rs += s.charAt(i);
            }
        }
        try {
            return f ? Integer.parseInt(rs) * (-1) : Integer.parseInt(rs);
        } catch (Exception e) {
            return 0;
        }
    }
}
原文地址:https://www.cnblogs.com/s841844054/p/13736429.html