給定乙個整數 num,將其轉化為 7 進製,並以字串形式輸出。
示例:
輸入: num = -7進製轉換型別的題,通常是利用除法和取模(mod)來進行計算,同時也要注意一些細節,如負數和零。輸出: "-10"
如果輸出是數字型別而非字串,則也需要考慮是否會超出整數上下界。
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,...