415.字符串相加:模拟实现高精度加法
【LetMeFly】415.字符串相加:模拟实现高精度加法
力扣题目链接:https://leetcode.cn/problems/add-strings/
给定两个字符串形式的非负整数 num1
和num2
,计算它们的和并同样以字符串形式返回。
你不能使用任何內建的用于处理大整数的库(比如 BigInteger
), 也不能直接将输入的字符串转换为整数形式。
示例 1:
输入:num1 = "11", num2 = "123" 输出:"134"
示例 2:
输入:num1 = "456", num2 = "77" 输出:"533"
示例 3:
输入:num1 = "0", num2 = "0" 输出:"0"
提示:
1 <= num1.length, num2.length <= 104
num1
和num2
都只包含数字0-9
num1
和num2
都不包含任何前导零
方法一:模拟实现高精度加法
使用两个指针loc1和loc2分别从两个字符串的最低位不断往高位移动;使用一个变量add来记录每次相加后的进位(初始值为0)。
在loc1没有指完
或loc2没有指完
或add不为0
时,$add += num1[loc1] + num2[loc2]$(如果指针指向位置有效),在答案的高位添加$add % 10$,之后令$add /= 10$即可。
- 时间复杂度$O(len(nums1) + len(nums2))$
- 空间复杂度$O(1)$,力扣返回值不计入算法的空间复杂度
AC代码
C++
1 |
|
Python
1 |
|
同步发文于CSDN,原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/131758488
415.字符串相加:模拟实现高精度加法
https://blog.letmefly.xyz/2023/07/17/LeetCode 0415.字符串相加/