LeetCode:字符串相加415

Posted 子烁爱学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode:字符串相加415相关的知识,希望对你有一定的参考价值。

LeetCode:字符串相加【415】

题目描述

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

注意:

num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。

题目分析

  这道题其实很简单,我们要搞清楚手工计算两数之和的流程。两数相加,和如果大于10的话就有进位,进位最高为1,默认为0,该位相加的和应为sum%10

  小学数学题哦,不多解释了!

Java题解

    public static String addStrings(String num1, String num2) {
        int ptrNum1 = num1.length()-1 ;
        int ptrNum2 = num2.length()-1 ;
        int count = 0;
        StringBuilder result = new StringBuilder();
        //1、从两数个位开始相加
        while(ptrNum1>=0&&ptrNum2>=0){
            //[a、换算成数字]
            int a = num1.charAt(ptrNum1)-\'0\';
            int b = num2.charAt(ptrNum2)-\'0\';
            //[b、计算位数之和,包含进位count]
            int sum = a+b+count;
            count = 0;
            //[c、如果和大于9,则有新进位]
            if(sum>9){
                count =1;
                sum-=10;
            }
            //[d、将处理后sum插入结果]
            result.insert(0,sum);
            ptrNum1--;
            ptrNum2--;
        }
        //2、假如数字1还有高位未相加
        while(ptrNum1>=0){
            //[a、仅仅与进位值相加]
            int a =num1.charAt(ptrNum1)-\'0\'+count;
            count = 0;
            if(a>=10){
                count =1;
                a-=10;
            }
            //[b、将处理后sum插入结果]
            result.insert(0,a);
            ptrNum1--;
        }
        //3、加入数字2还有高位未相加
        while(ptrNum2>=0){
            int a =num2.charAt(ptrNum2)-\'0\'+count;
            count = 0;
            if(a>10){
                count =1;
                a-=10;
            }
            result.insert(0,a);
            ptrNum2--;
        }
        //4、考虑最高位进位的情况
        if(count==1)
            result.append("1");
        return result.toString();
    }

  

 

以上是关于LeetCode:字符串相加415的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 415 字符串相加

leetcode415---字符串大数相加

LeetCode: 415. 字符串相加

精选力扣500题 第26题 LeetCode 415. 字符串相加c++ / java 详细题解

leetcode 415. 字符串相加

leetcode简单415字符串相加