美文网首页
[每日一题]7. Reverse Integer

[每日一题]7. Reverse Integer

作者: 何学诚 | 来源:发表于2019-04-15 17:05 被阅读0次
1.这个题目就是反转整数
7. Reverse Integer.JPG

链接:
https://leetcode.com/problems/reverse-integer/

解题思路就是:
因为不能用数组,所以只能使用取余数的方法,要考虑溢出的情况。

1.将传入的数x取余(余数为pop)
2.将得到的余数pop放入新的变量rev中。
3.每次对原先的数整除10,并对新的变量rev乘以10
4.在每一次得到新的rev之前,判断是否要跃出边界了。2^31次方是2147483648,因此,如果原先的数是214748364时,pop不得大于7.(为什么不在程序开始时判断,是因为只有反转过来之后,才知道会不会越界。)
ps:注意的是python3中的整除是'//'

2.题解:
class Solution:
    def reverse(self,x):
        """
        :type x: int
        :rtype: int
        """
        flag = 0
        ##判断正负
        if x < 0:
            x = -x
            flag=1
        rev = 0
        ##循环的转向
        while(x != 0):
            pop = x % 10
            x = x // 10
            temp = rev * 10 + pop
            ##判断是否越界
            if (rev > pow(2,31)/10 or (rev== pow(2,31)/10 and pop >7)):
                return 0
            rev = temp

        if flag == 1:
            return -1*rev
        else:
            return rev

3.完整代码

查看链接:
https://github.com/Wind0ranger/LeetcodeLearn/blob/master/other/7-reverse-integer.py

相关文章

网友评论

      本文标题:[每日一题]7. Reverse Integer

      本文链接:https://www.haomeiwen.com/subject/lecpwqtx.html