原题链接在这里:https://leetcode.com/problems/reverse-integer/

题目:

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

题解:

x%10加到res中.

负数-123 mod 10 = -3, 所以不用担心负数。

注意corner case, e.g. 2133....99, 反过来9开头时就冒了Integer.MAX_VALUE了.

Time Complexity: O(n), n是x的位数. Space: O(1).

AC Java:

public class Solution {
    public int reverse(int x) {
        long res = 0;
        while(x != 0){
            res = res*10 + x%10;
            x /= 10;
        }
        
        if(res > Integer.MAX_VALUE || res < Integer.MIN_VALUE){
            return 0;
        }
        
        return (int)res;
    }
}

类似String to Integer (atoi)Reverse Bits.

转载于:https://www.cnblogs.com/Dylan-Java-NYC/p/5139490.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐