zoukankan      html  css  js  c++  java
  • LeetCode_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.

    解题

    def reverse(x):
        """
        :type x: int
        :rtype: int
        """
        y = -x if x < 0 else x
    
        list = []
        last = y
        while last > 0:
            list.append(last % 10)
            last //= 10
    
        sum = 0
        length = len(list)
        for l in list:
            length -= 1
            sum += l * 10 ** length
    
        result = -sum if x < 0 else sum
    
        if result > 2147483647 or result < -2147483648:
            return 0
    
        return result
    

    思路

    这里利用了不断对10作除法,所获得的余数顺序正好与原数字相反的特性。

  • 相关阅读:
    工具类-vim在shell中卡死的情况
    tomcat日志分类
    逻辑运算
    牛客练习赛29 F 算式子
    牛客练习赛29 B
    查询
    hdu 5984
    zoj 4057
    zoj 4056
    zoj 4054
  • 原文地址:https://www.cnblogs.com/kenwoo/p/10122071.html
Copyright © 2011-2022 走看看