给定两个字符串形式的非负整数
num1
和num2
,计算它们的和。注意:
num1
和num2
的长度都小于 5100.num1
和num2
都只包含数字0-9
.num1
和num2
都不包含任何前导零。- 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
1:用ord()方法将字符串转asc||码进行计算
def addStrings(self, num1, num2):
"""
:type num1: str
:type num2: str
:rtype: str
"""
if len(num1) < len(num2):
num1, num2 = num2, num1
num1List = list(num1) #转列表
num2List = list(num2)
num2Len = len(num2List)
add = 0 #进位
sum = ""
for i in range(len(num1List)):
if i < num2Len:
temp = ord(num1List[-i-1]) - ord('1') + 1 + ord(num2List[-i-1]) - ord('1') + 1 + add #注意!!列表倒序访问是从-1开始
add = temp // 10
sum = str(temp % 10) + sum
else:
temp = ord(num1List[-i-1]) - ord('1') + 1 + add
add = temp // 10
sum = str(temp % 10) + sum
if add == 1: #判断是否还存在进位
sum = "1" + sum
return sum
算法题来自:https://leetcode-cn.com/problems/add-strings/description/