leetcode刷题之415.字符串相加
- 题目:
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 - 注意:
- num1 和num2 的长度都小于 5100.
- num1 和num2 都只包含数字 0-9.
- num1 和num2 都不包含任何前导零。
- 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
- 示例:
输入:
"120"
"0"
输出: "120"
class Solution(object):
def addStrings(self, num1, num2):
"""
:type num1: str
:type num2: str
:rtype: str
"""
c = 0
i, j = len(num1)-1,len(num2)-1
s = ''
while i >= 0 or j>=0 or c != 0:
if i >= 0:
c += ord(num1[i])-ord('0')
i-=1
if j >= 0:
c += ord(num2[j])-ord('0')
j-=1
s += str(c % 10)
c /= 10
return s[::-1]
- 算法说明:
设置一个进位c、一个num1的指针i、一个num2的指针j,分别从num1和num2的最后一位给c累加数字,然后把c的个位加在字符串s后面s += str(c % 10),十位数字赋给自己c /= 10;一直循环直到i、j、c都小于0为止。反向输出s!