leetcode 504. 七进制数

2020-02-18  本文已影响0人  fanchuang

没看评论,自己写的,执行效率一般

class Solution:
    def convertToBase7(self, num: int) -> str:

        def helper(num):
            temp = []
            b = num % 7    # 这是第一个余数,最初测试的时候就保存的,最终也是需要用到的
            while num // 7 >= 7:
                num = num // 7  # 如果 a 是大于7 的话, 那么就继续除下去,但是需要把余数保存下来
                temp.insert(0, num % 7)
                # print("At now, num is :  ", num, temp)
            else:
                # 此时的 a 是小于7    比如 8 = 7*1 +1
                temp.insert(0, num // 7)
            temp.append(b)
            return ''.join([str(i) for i in temp])

        if num >= 7:
            return helper(num)
        # 对于负数的话,直接取绝对值,然后按照上面的来就行了。
        elif num <= -7:
            return "-" + helper(abs(num))
        else:
            # num > -7 and num < 7:
            return str(num) 
上一篇下一篇

猜你喜欢

热点阅读