8 月 3 日签到题,题目如下:
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
提示:
- num1 和num2 的长度都小于 5100
- num1 和num2 都只包含数字 0-9
- num1 和num2 都不包含任何前导零
- 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-strings
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
使用一个字符串 result 记录结果。
使用两个指针,同时把两个字符串从后往前遍历所有所有字符,直到两个指针都变为 0,即遍历完两个字符串。直接用 ASCII 码把数字字符转成整型然后相加,再加上上一次的进位记录,结果大于零记录进位 1,否则进位 0。把结果的个位数转回字符串类型加 result 的前面。跳出循环后把最后一次的进位结果加到 result 的前面。
复杂度分析
最大遍历次数为较长数组长度,时间复杂度为 O(N);
使用常数量的额外空间,空间复杂度为 O(1)。
以下为自己提交的代码:
public class Solution {
public string AddStrings(string num1, string num2) {
int index1 = num1.Length - 1;
i