给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-strings
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
吐个槽看很多人提交return str(int(num1)+int(num2)),有点无语。
1. 由于不能转换后相加,就做个字典映射,把字符映射到数字。
2. 处理得到每个字符对应的数字"123"-->1和2和3,但结果应该是123(1百2十3)
所以每个数字最终是所在位*10**(字符长度-索引-1)。
3. 由于要处理2次,就写个函数来处理。
4. 求和,转换成字符串(结果要字符串)
class Solution:
def addStrings(self, num1: str, num2: str) -> str:
def rotatetoNum(num):
dict_num = {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}
result = 0
for i,v in enumerate(num):
result = result+dict_num[v]*10**(len(num)-i-1)
return result
return str(rotatetoNum(num1)+rotatetoNum(num2))
- 实际的效果应该比这个好一些,很多提交的不对的在前面,但有些人写的正解是不错的,值得借鉴。