Leetcode练习(Python):第415题:字符串相加:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
题目:
字符串相加:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
思路:
较简单,注意进位问题。
程序:
class Solution: def addStrings(self, num1: str, num2: str) -> str: if not num1 and num2: return num2 if num1 and not num2: return num1 if not num1 and not num2: return num1 length1 = len(num1) length2 = len(num2) carry = 0 result = [0] for index in range(1, max(length1, length2) + 1): if index <= length1: n1 = int(num1[-index]) else: n1 = 0 if index <= length2: n2 = int(num2[-index]) else: n2 = 0 auxiliary = n1 + n2 + carry carry = auxiliary // 10 result.insert(0, str(auxiliary % 10)) if carry == 0: return ''.join(result[: -1]) elif carry == 1: return '1' + ''.join(result[: -1])