美文网首页
String字符串表示的数字相加(LeetCode415.字符串

String字符串表示的数字相加(LeetCode415.字符串

作者: 雁阵惊寒_zhn | 来源:发表于2020-10-25 11:46 被阅读0次

题目

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
例如:"235" + "645" 结果为:"880","36" + "47" 结果为:"83"

解题

按照笔算加法的方式,相同数位对齐,依次进行加法,产生进位向前一位进位。如图:


笔算加法

从字符串的最高的下标对齐(字符串"abc",'a'的下标为0,'c'的下标是2,也就是两个字符串右对齐),依次向前遍历两个字符串到下标0的位置,如果其中一个字符串提前到下标0,那么之后遍历数位上都是0(相当于位数少的字符串高位用0补齐)。

代码

public String addStrings(String num1, String num2) {
    if(null == num1){
        return null;
    }
    if(null == num2){
        return null;
    }
    int i = 0;
    int carry = 0;
    //StringBuilder模拟栈结构把地位的结果放入栈底部,高位结果放入栈顶部
    StringBuilder sb = new StringBuilder();
    while(i < num1.length() || i < num2.length()){
        //从高下标开始,向0移动
        int m = i < num1.length() ? (num1.charAt(num1.length() - 1 - i) - '0') : 0;
        int n = i < num2.length() ? (num2.charAt(num2.length() - 1- i) - '0') : 0;
        //产生的进位值,初始化0
        int sum = m + n + carry;
        //保存结果,更新进位值
        sb.append(String.valueOf(sum % 10));
        carry = sum / 10;
        i++;
    }
    //最高位的进位单独处理
    if(carry > 0){
        sb.append(String.valueOf(carry));
    }
    //翻转StringBuilder获取结果
    return sb.reverse().toString();
}

相关文章

  • String字符串表示的数字相加(LeetCode415.字符串

    题目 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。例如:"235" + "645" 结果...

  • 连字符+

    连字符:连接字符串相加的符号(必须由字符串参与) 任何类型与String相加,其结果都是String +号左右有字...

  • 【通俗易懂C++ STL模板库】容器 遍历 查找、排序、拷贝、替

    String 概念 string 是 STL的字符串类型,通常用来表示字符串。而在使用 string 之前,字符串...

  • Kotlin(4):字符串

    字符串用 String 类型表示,字符串是不可变的。 字符串表示方法 使用"或者'''表示字符串 字符串访问 字符...

  • Leetcode415. 字符串相加

    题目 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注意: C++解法 来源:力扣(Lee...

  • JAVA之字符串总结

    一、字符串总结 1.字符串和字符串相加 2.字符串和数字相加 3.计算字符串的长度 4.判断字符串是否相等 5.字...

  • js 实现大整数加法

    问题描述实现‘字符串加法’,即将两个以字符串形式表示的数字相加,得到结果然后返回一个新的字符串。 例如:输入‘12...

  • 学Java(String类)

    能够表示字符串:String类,StringBuffer类,StringBuilder类。 String类:字符串...

  • JS 里的数据类型转换

    1.any 转 string n + ‘’ //与空字符串相加 .toString() window.String...

  • 5-10js

    六种数据类型相加生成的数据类型: 数字 + 对象类型 = 字符串 数字 + 字符串类型 = 字符串类型 数字 + ...

网友评论

      本文标题:String字符串表示的数字相加(LeetCode415.字符串

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