數學 力扣504 七進製數

2022-10-10 21:57:16 字數 1411 閱讀 6019

給定乙個整數 num,將其轉化為 7 進製,並以字串形式輸出。

示例:

輸入: num = -7

輸出: "-10"

進製轉換型別的題,通常是利用除法和取模(mod)來進行計算,同時也要注意一些細節,如負數和零。

如果輸出是數字型別而非字串,則也需要考慮是否會超出整數上下界。

class solution:

def converttobase7(self, num: int) -> str:

# num 為 0 時的情況

if num == 0:

return "0"

# num為負數的情況

# num = abs(num)

if num < 0:

num = -num

res = "" # 放在迴圈外面

while num:

'''res = str(num % 7) + res

num = num // 7

'''a, b = num // 7, num % 7

res = str(b) + res

num = a

return "-" + res if num < 0 else res # 給負數的num加上負號

時間複雜度:o(log∣num∣),其中 ∣num∣ 表示 num 的絕對值。迴圈中最多做o(log∣num∣) 次除法。

空間複雜度:o(log∣num∣)。字元陣列的長度最多為o(log∣num∣)。部分語言可以直接修改字串,空間複雜度為 o(1)。

可以用python特殊方法解決數字轉字串問題:

class solution:

def converttobase7(self, num: int) -> str:

if num == 0:

return "0"

negative = num < 0

num = abs(num)

digits =

while num:

num //= 7

if negative:

return ''.join(reversed(digits))

一行**:

class solution:

def converttobase7(self, num: int) -> str:

return ("-" if num < 0 else "") + self.converttobase7(d) + str(a % 7) if (d := (a := abs(num)) // 7) > 0 else str(num)

504 七進製數

題目描述 給定乙個整數,將其轉化為7進製,並以字串形式輸出。示例 1 輸入 100 輸出 202 示例 2 輸入 7 輸出 10 注意 輸入範圍是 1e7,1e7 方法1 主要思路 1 首先確定輸入值的絕對值,然後對絕對值使用 7 進行分解,將分解後的得到的字串,根據原來數字的正負,決定是否在字串的...

每日一題力扣504 七進製數

給定乙個整數,將其轉化為7進製,並以字串形式輸出。判斷num是否大於0,是的話執行下面的步驟,否則結束 將num模7得到的餘數存入餘數列表中,這裡注意存入的時候就轉成字元型別,同時從列表頭部插入,方便後面的 倒取餘 將num更新為num除以7得到的商 注意取整 跳轉到1.class solution...

leetcode504 七進製數

給定乙個整數,將其轉化為7進製,並以字串形式輸出。示例1 輸入 100 輸出 202 示例2 輸入 7 輸出 10 注意 輸入範圍是 1e7,1e7 解法一 比較簡單,直接按照除法公式,把餘數新增到字串裡,最後把字串取反就可以了,注意一點就是負數的情況要先加入負號再取反。迴圈停止的條件是直到商為0,...