Escape Ray


Blog owned by escray

LeetCode 7 Reverse Integer

19 Jul 2018

my solution, Runtime: 48 ms

public class Solution {
    public int Reverse(int x) {
        var i = 0;
        long result = 0;
        var intmax = Int32.MaxValue;
        var intmin = Int32.MinValue;
 
        var flag = false;
        if (x < 0) {
            x = -x;
            flag = true;
        }
        while (x > 0)
        {
            result = result*10 + x%10;
            x /= 10;
        }

        if (result > intmax){
            return 0;
        }
        if (flag) {
            result = -result;
        }
        if (result < intmin){
            return 0;
        }
        return (int)result;
    }
}

Better solution, sample 44 ms submission

public class Solution {
    public int Reverse(int x) {
        int reverse = 0;
        while(x != 0){

            if (reverse > int.MaxValue/10 || (reverse.Equals(int.MaxValue / 10 > 7))) return 0;
            if (reverse < int.MinValue/10 || (reverse.Equals(int.MinValue / 10 < -8))) return 0;
            reverse = reverse*10 + x%10;
            x = x/10;

        }
        return reverse;
    }
}