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

     
     
  • 相关阅读:
    c#装箱和拆箱
    C#数组,ArrayList,List
    Cocos Creator_发布到微信小游戏平台
    unity游戏设计与实现 --读书笔记(一)
    Cocos Creator存储和读取用户数据--官方文档
    C
    233 Matrix 矩阵快速幂
    数学 找规律 Jzzhu and Sequences
    A. Treasure Hunt Codeforces 线性代数
    POJ 2688 Cleaning Robot (BFS+DFS)
  • 原文地址:https://www.cnblogs.com/fangdai/p/6624961.html
Copyright © 2011-2022 走看看