• LeetCode No.7 Reverse Integer 2017/3/27


    Reverse digits of an integer.

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

    click to show spoilers.

    Note:
    The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.

    Subscribe to see which companies asked this question.

     
    题目大意:返回一个数的逆置数,并且如果逆置后发生溢出时返回0
    解题思路:首先判断x是正数还是负数,用sign等于1或者-1来保存x的符号,然后当x是负数的时候把它先变为正数。x=0的情况并到后面直接返回0。用rex保存将要返回的数,每次循环只要当前x不为0,就把rex的每个位上的数都往左移一位(即将rex乘以10)并将x的最低位添加到rex的最低位(加上x除以10求余),然后将x的最低位丢掉(x/=10)。输出结果前对rex进行判断,若溢出就直接输出0,否则把逆置后的rex乘上符号sign得到输出结果。
    在编程过程中犯了个低级错误,一开始由于把x分成正数负数和0,我就用了三个if语句,后来把0的情况删掉了,但是正负数分别用了if来判断,先判断x是负数的话就将sign标记为-1,然后将x变为正数,结果后面判断x如果是正数的话又把sign变成了1,所以当输入负数的时候结果一直是正数的逆置。。实在是太愚蠢了。最后改成先判断是正数再判断是负数,就不会出现将负数x变为正数后影响了sign值。

    class Solution:
    def reverse(self, x):
    """
    :type x: int
    :rtype: int
    """
    sign = 0
    if (x > 0):
    sign = 1
    if (x < 0):
    sign = -1
    x = x * -1
    rex = 0
    while (x != 0):
    rex = rex * 10 + x % 10
    x /= 10
    if rex > 2 ** 31 -1:
    return 0
    else:
    return rex * sign

     
     
  • 相关阅读:
    使用Dockerfile构建镜像并push到私有仓库
    docker registry-v2 搭建私有仓库
    spring-cloud 学习四 服务网关
    spring-cloud 学习三 服务提供者
    TortoiseSVN安装和使用
    SG-UAP常用注解介绍
    weblogic漏洞
    开发工具历史版本
    Android Studio 打包生成apk
    weblogic unable to get file lock问题
  • 原文地址:https://www.cnblogs.com/fangdai/p/6624961.html
Copyright © 2020-2023  润新知