当前位置: 首页 > 后端技术 > Java

LeetCode-415-字符串加法

时间:2023-04-01 20:29:59 Java

题目题目描述:给定两个字符串形式的非负整数num1和num2,计算它们的和。提示:num1和num2的长度都小于5100。num1和num2都只包含数字0-9。num1和num2都不包含任何前导零。您不能使用任何内置的BigInteger库,也不能直接将输入字符串转换为整数。参见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:遍历字符串首先声明一个字符串result作为最终的返回值,声明i初值为0,addOne为进位值初值,初值为0,firstNum和secondNum为分别为num1和num2的当前索引位的编号,然后开始遍历num1和num2中的元素,过程如下:如果i没有超过num1和num2的长度,则将当前索引位置的编号赋给innum1和num2赋给firstNum和secondNum,否则将firstNum和secondNum赋给0;然后计算firstNum+secondNum+addOne的结果作为sum;如果sum大于9,需要进位,addOne置1,结果串前面加上sum-10;如果sum小于9,不需要进位,addOne置0,sum加到结果串前面;i加1,最后如果addOne判断为1,则在result前面加上addOne。最后返回的结果就是字符串相加的结果。/***@Author:ck*@Date:2021/9/298:34pm*/publicclassLeetCode_415{publicstaticStringaddStrings(Stringnum1,Stringnum2){Stringresult="";//addOne是进位inti=0,addOne=0,firstNum=0,secondNum=0;while(i9){结果=(总和-10)+结果;添加一个=1;}else{结果=总和+结果;添加一个=0;}我++;}如果(addOne==1){结果=1+结果;}返回结果;}publicstaticvoidmain(String[]args){//预期输出:533System.out.println(addStrings("456","77"));}}[每日留言]诚信为生命之母,务实为成功之道