首页
学习
活动
专区
圈层
工具
发布

字符串相加

字符串相加 给定两个字符串形式的非负整数num1和num2,计算它们的和。 注意: num1和num2的长度都小于5100。 num1和num2都只包含数字0-9。...你不能使用任何內建BigInteger库,也不能直接将输入的字符串转换为整数形式。...target; carry = ~~(carry / 10); } return target; }; 思路 首先我的想法是使用填充0的方式进行对位,然后由后向前每一位进行相加处理...,使用carry作为进位标记,target为目标字符串,在填0对位完成后进行循环处理,将两个字符串的单个字符转换为int后与进位标记carry相加,然后判断该值是否大于10用以处理是否需要再次进位,之后拼接于目标字符串...0来确定是否将其值加入增量carry,然后将增量取余拼接目标字符串,将增量除10作为进位标记,最后返回目标字符串即可。

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    字符串相加

    JAVA解法 class Solution { public String addStrings(String num1, String num2) { // 获取传进来的两个字符串的长度...num2.charAt(j) - '0' : 0; // 两字符串相加再加上上一步的进位 int result = x + y + add;...ans.reverse(); // 返回最终答案,记得 toString 变成 String 类型 return ans.toString(); } } 题解分析   这道字符串相加的思路是将其每个字符转换成整型相加得出结果再转换成字符串...取完值,两字符串相加再加上上一步的进位,对结果求余作为本次运算的结果,再对结果除以 10 获得进位的值,同步维护两个指针,最后要记得将答案反转一下,因为拼接字符串是从左到右拼接的,但是我们的数是从又到左数值越大的...字符串相加

    89330

    【LeetCode 415】—字符串相加算法详解

    示例 2: 输入:num1 = "456", num2 = "77" 输出:"533" 示例 3: 输入:num1 = "0", num2 = "0" 输出:"0" 题目分析 这道题要求我们实现两个字符串形式的数字相加...这个问题本质上是在模拟我们小学学习的竖式加法运算过程: 从最低位(个位)开始,逐位相加 处理进位情况 最后可能需要在最高位增加一个进位 解题思路 我们可以采用以下步骤解决这个问题: 从两个字符串的末尾开始遍历...(即从个位开始) 对应位置的数字相加,再加上可能的进位 计算当前位的结果和新的进位 将当前位的结果添加到结果字符串中 遍历结束后,检查是否还有进位,如果有则添加到结果中 由于我们是从低位到高位计算的,最后需要将结果字符串反转...总结 这道题是一个经典的大数加法问题,通过模拟人工计算的过程,我们可以实现任意长度的数字相加。...两数相加 LeetCode 43. 字符串相乘 LeetCode 66. 加一 LeetCode 67. 二进制求和 LeetCode 989. 数组形式的整数加法

    38010

    字符串相加 js 实现

    原题链接:https://leetcode.cn/problems/add-strings/ 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。..."0" 提示: 1 <= num1.length, num2.length <= 104 num1 和num2 都只包含数字 0-9 num1 和num2 都不包含任何前导零 实现方案: 此题考察大数相加...,由于数字最大为 64 位,大数直接相加会导致越界,所以使用字符串拼接的方式 按照位置,进行各个位数的字符串拼接,并定义进位变量,每次与进位相加后再进行拼接。...,最终通过拼接字符串返回 let carry = 0; // 保存进位 while(l1>=0||l2>=0){ // 如果当前字符串索引大于等于0,获取该位置的值,-0...(num2.charAt(l2)-0):0; // 保存两个数字同一位及进位相加结果 let temp = n1+n2+carry; // 通过字符串拼接总和

    2.4K20
    领券