leetcode

您所在的位置:网站首页 字符与字符相加 leetcode

leetcode

#leetcode| 来源: 网络整理| 查看: 265

题目:给定两个字符串形式的非负整数 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