整数翻转

转为字符串分情况讨论

class Solution {
    public int reverse(int x) {
        long num = 0;
        String numStr = x + "";
        int len = numStr.length();
        if(x >= 0){
            for(int i=len-1;i>=0;i--){
                char ch = numStr.charAt(i); 
                num = num * 10 + ch - '0'; 
            }
            if(num > Integer.MAX_VALUE) return 0;
            return (int) num;
        }else{
            for(int i=len-1;i>0;i--){
                char ch = numStr.charAt(i); 
                num = num * 10 + ch - '0'; 
            }
            num *= -1;
             if(num < Integer.MIN_VALUE) return 0;
             return (int)num;
        }
       // return 0;

    }
}

直接一个循环内计算(溢出判断挺有意思的)

class Solution {
public int reverse(int x) {
	int ans = 0;
	while (x != 0) {
		if ((ans * 10) / 10 != ans) {//判断ans*10是否溢出
			ans = 0;
			break;
		}
        //当ans*10未溢出时,ans*10的个位是0,故ans*10+x%10也不会溢出
		ans = ans * 10 + x % 10;
		x = x / 10;
	}
	return ans;
}
}
不一样的烟火
原文地址:https://www.cnblogs.com/cstdio1/p/13344402.html