首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

撬动offer:两个字符串数字相加

0x01:题目 题目一:有两个字符串分别如下: String a = "10101001101010100110"; String b = "1011011101100"; 字符串里的数字或者是...编写一个函数实现这两个数的二进制字符串相加。考虑都是无符号数字相加。...题目变种 有两个字符串分别如下: String a = "1879987637894818799876378948"; String b = "176898"; 字符串里的数字是0到9的任意一个数字字符...编写一个函数实现这两个十进制字符串相加。考虑都是无符号数字相加。...回想一下老师教的数字是怎么相加,其实就是从数字的最右边的最后一位开始(就是个位开始计算),将两个对应的位进行相加,对于十进制,如果相加的数字大于等于10,就往前进一位。就这样教计算机进行计算即可。

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

    字符串相加

    字符串相加 给定两个字符串形式的非负整数num1和num2,计算它们的和。 注意: num1和num2的长度都小于5100。 num1和num2都只包含数字0-9。...target; carry = ~~(carry / 10); } return target; }; 思路 首先我的想法是使用填充0的方式进行对位,然后由后向前每一位进行相加处理...,使用carry作为进位标记,target为目标字符串,在填0对位完成后进行循环处理,将两个字符串的单个字符转换为int后与进位标记carry相加,然后判断该值是否大于10用以处理是否需要再次进位,之后拼接于目标字符串...之后运用双指针的方式代码更加简洁,同样是使用carry作为进位标记以及加量值,target为目标字符串,不需要进行0填充对位,循环条件是两个指针大于等于0以及有进位三个情况满足一个即可,通过判断指针值是否大于等于...0来确定是否将其值加入增量carry,然后将增量取余拼接目标字符串,将增量除10作为进位标记,最后返回目标字符串即可。

    1.2K20

    用Python计算两个矩阵相加

    我们在高数、线性代数等课上都学习了怎么计算两个矩阵相加,那Python如何计算 1 问题 如何用python来计算两个矩阵相加。...2 方法 为了计算两个矩阵相加,我们创建一个新的矩阵,使用 for 迭代并取出 X 和 Y 矩阵中对应位置的值,相加后放到新矩阵的对应位置中。...在这个 python 程序中,我们有两个矩阵作为 A 和 B 。让我们检查矩阵顺序,并将矩阵存储在变量中。我们必须将和矩阵初始化为元素为零。...通过实验、实践等证明提出的方法是有效的,是能够解决两个矩阵相加的问题的。...range(len(res)): for j in range(len(res[0])): res[i][j]=X[i][j]+Y[i][j]print(res) 3 结语 针对计算两个矩阵相加的问题

    27830

    字符串相加

    image.png JAVA解法 class Solution { public String addStrings(String num1, String num2) { // 获取传进来的两个字符串的长度...ans.reverse(); // 返回最终答案,记得 toString 变成 String 类型 return ans.toString(); } } 题解分析   这道字符串相加的思路是将其每个字符转换成整型相加得出结果再转换成字符串...首先获取传进来的两个字符串的长度,且定义一个保存进位的 add 变量,定义结果集,只要以上三个变量不为任一一个不为 0 都能进入循环,只要 num1 或者 num2 的长度不为 0 则进行取值。...取完值,两字符串相加再加上上一步的进位,对结果求余作为本次运算的结果,再对结果除以 10 获得进位的值,同步维护两个指针,最后要记得将答案反转一下,因为拼接字符串是从左到右拼接的,但是我们的数是从又到左数值越大的...字符串相加

    51930

    字符串相加 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; // 通过字符串拼接总和

    1.7K20
    领券