leetcode |
您所在的位置:网站首页 › 字符与字符相加 › leetcode |
题目:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注意: 1)num1 和num2 的长度都小于 5100。 2)num1 和num2 都只包含数字 0-9. 3)num1 和num2 都不包含任何前导零。 4)你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。 解析:这题难度为简单。要仔细看清题目是字符串相加,而不是整数相加。这题拿到手,你可以将这两个字符串转成整数,做完加法后再转成字符串。我这里介绍下利用指针来解决,其主要思想就是用双指针分别指向字符串num1和num2的尾部,模拟人工做加法。 其步骤如下 1)定义双指针n1,n2,分别指向num1和num2的尾部 2)定义carry表示进位,carry=temp/10, 3)定义temp为当前位相加的值,temp=n1+n2+carry,并将temp%10添加至res中 4)若num1和num2的长度不等,则当指针走过给较短的字符串首部后,就令其为0,方便后续计算 5)计算结束后,将res反转并转成字符串形式 图解步骤如图1所示 图1 图解步骤代码(运行通过): 非常感谢你能看到这里,若有不满意的地方欢迎评论指出 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |