Leetcode-大数运算-415. 字符串相加

Leetcode-大数运算-415. 字符串相加

  • 题目
  • 题解
  • 代码
  • 其他

题目

  1. 字符串相加
    给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
    提示:

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

题解

= =
把每日一题和标签的题搞混了
不是用队列做的
大数运算,两数末尾和进位提出来相加,直至全部加完且没有进位停止

代码

class Solution {
public String addStrings(String num1, String num2) {
    StringBuilder s = new StringBuilder();
    int i = num1.length() - 1, j = num2.length() - 1, carry = 0;
    while (i >= 0 || j >= 0 || carry != 0) {
        int x = i < 0 ? 0 : num1.charAt(i--) - '0';
        int y = j < 0 ? 0 : num2.charAt(j--) - '0';
        int sum = x + y + carry;
        s.append(sum % 10);//添加到字符串尾部
        carry = sum / 10;
    }
    return s.reverse().toString();//对字符串反转
}
}

其他

官方解释
String、StringBuffer和StringBuilder的区别
str.charAt()和str[i]的区别

你可能感兴趣的:(#,LeetCode)