美文网首页
【教3妹学算法】字符串相加

【教3妹学算法】字符串相加

作者: 程序员小2 | 来源:发表于2022-09-28 09:52 被阅读0次
    3妹

    3妹:2哥,今天周日,出去玩一玩,爬爬山怎么样。
    2哥:还出去玩呢,现在全国疫情又反复了, 前段时间上海疫情刚控制住,现在宿州泗县和无锡疫情又爆发了,还是注意一些,不要随便出去走动了。
    3妹:哦,是哦,普通公民能做的就是尽量居家,不能防疫添麻烦。
    2哥:对,还是在家打会儿游戏吧,来,带你打野。
    3妹:切,我对打游戏没兴趣,我还是做几道题,然后看我的韩剧吧

    讲课

    题目:

    给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。

    你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。

    示例 1:

    输入:num1 = "11", num2 = "123"
    输出:"134"
    示例 2:

    输入:num1 = "456", num2 = "77"
    输出:"533"
    示例 3:

    输入:num1 = "0", num2 = "0"
    输出:"0"

    提示:

    1 <= num1.length, num2.length <= 10^4
    num1 和num2 都只包含数字 0-9
    num1 和num2 都不包含任何前导零

    java代码:

    class Solution {
        public String addStrings(String num1, String num2) {
            int i = num1.length() - 1;
            int j = num2.length() - 1;
            int carry = 0;
            StringBuilder ans = new StringBuilder();
    
            while (i >= 0 || j >= 0 || carry != 0) {
                int x = i >= 0 ? num1.charAt(i) - '0' : 0;
                int y = j >= 0 ? num2.charAt(j) - '0' : 0;
    
                int res = x + y + carry;
                ans.append(res % 10);
                carry = res / 10;
                i--;
                j--;
            }
    
            // 计算完以后的答案需要翻转过来
            ans.reverse();
            return ans.toString();
        }
    }
    

    相关文章

      网友评论

          本文标题:【教3妹学算法】字符串相加

          本文链接:https://www.haomeiwen.com/subject/hcqcartx.html