Q:
给定两个字符串形式的非负整数 num1
和num2
,计算它们的和。
注意:
num1
和num2
的长度都小于 5100.num1
和num2
都只包含数字0-9
.num1
和num2
都不包含任何前导零。- 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
思路:首先题目说明不能使用Python库 不能直接转形 但是题目中最快的方法还是直接转型的 如下:
class Solution:
def addStrings(self, num1, num2):
"""
:type num1: str
:type num2: str
:rtype: str
"""
return str(int(num1) + int(num2))
或者:
执行用时为 56 ms 的范例
class Solution:
def addStrings(self, num1, num2):
"""
:type num1: str
:type num2: str
:rtype: str
"""
return str(eval(num1)+eval(num2))
如果不使用内置函数造作,思路就是将字符串倒序,然后从第一位开始相加 代码如下:
class Solution:
def addStrings(self, num1, num2):
"""
:type num1: str
:type num2: str
:rtype: str
"""
return str(self.str2int(num1)+self.str2int(num2))
def str2int(self, s):
s = s[::-1]
num = 0
for i, v in enumerate(s):
offset = ord(v) - ord('0')
num += offset * (10 ** i)
return num
效率是很不好的