題目:
字符串相加:給定兩個字符串形式的非負整數 num1 和num2 ,計算它們的和。
注意:
num1 和num2 的長度都小於 5100.
num1 和num2 都只包含數字 0-9.
num1 和num2 都不包含任何前導零。
你不能使用任何內建 BigInteger 庫, 也不能直接將輸入的字符串轉換為整數形式。
思路:
較簡單,注意進位問題。
程序:
class Solution:
def addStrings(self, num1: str, num2: str) -> str:
if not num1 and num2:
return num2
if num1 and not num2:
return num1
if not num1 and not num2:
return num1
length1 = len(num1)
length2 = len(num2)
carry = 0
result = [0]
for index in range(1, max(length1, length2) + 1):
if index <= length1:
n1 = int(num1[-index])
else:
n1 = 0
if index <= length2:
n2 = int(num2[-index])
else:
n2 = 0
auxiliary = n1 + n2 + carry
carry = auxiliary // 10
result.insert(0, str(auxiliary % 10))
if carry == 0:
return ''.join(result[: -1])
elif carry == 1:
return '1' + ''.join(result[: -1])
