7. Reverse Integer

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

Input: 123
Output: 321

Example 2:

Input: -123
Output: -321

Example 3:

Input: 120
Output: 21

Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,  231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.



牛人答案1:
public int reverse(int x) { int result = 0; while (x != 0) { int tail = x % 10; int newResult = result * 10 + tail; if ((newResult - tail) / 10 != result) { return 0; } result = newResult; x = x / 10; } return result; }
答案2:
class Solution {
    public int reverse(int x) {
        int res = 0;
        
        while(x != 0){
            if(Math.abs(res) > Integer.MAX_VALUE / 10) return 0;
            res = res * 10 + x % 10;
            x /= 10;
        }
        return res;
    }
}
Python3:
class Solution:
    def reverse(self, x: int) -> int:
        s = (x > 0) - (x < 0) # True - False = 1, False - True = -1
        r = int(str(x*s)[::-1]) #[::-1] means reverse. Firstly convert number to string and reverse, then cast back to int. While casting to integer, if there's prefix '0', the casting can still go through and cut '0'.
        return s*r * (r < 2**31)    #Number * True = Number * 1, * False = * 0

https://stackoverflow.com/questions/509211/understanding-slice-notation

Slice notation.


 
原文地址:https://www.cnblogs.com/wentiliangkaihua/p/10135245.html