给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-strings
这道题和这道:二进制求和 的基本做法是一样的,但是我发现在python里面 把 if else
判断表达式语句代替if
条件判断语句,运行效率会高一些,原来的速度打败71%,更改了之后打败了93%。
class Solution:
def addStrings(self, num1: str, num2: str) -> str:
num1l=len(num1)-1
num2l=len(num2)-1
p=0
res=''
while((num1l>=0)|(num2l>=0)):
n1=int(num1[num1l]) if num1l>=0 else 0
n2=int(num2[num2l]) if num2l>=0 else 0
res=str((n1+n2+p)%10)+res
p=(n1+n2+p)//10
num1l-=1
num2l-=1
res=str(p)+res if p else res
return res
执行用时 :48 ms
, 在所有 python3
提交中击败了93.00%
的用户
内存消耗 :13.7 MB
, 在所有 python3
提交中击败了5.08%
的用户