//

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

// //

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

// //

 

// //

示例 1:

// //
//输入:num1 = "11", num2 = "123"
//输出:"134"
//
// //

示例 2:

// //
//输入:num1 = "456", num2 = "77"
//输出:"533"
//
// //

示例 3:

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

 

// //

 

// //

提示:

// // //
Related Topics
  • 数学
  • 字符串
  • 模拟

  • 👍 541
  • 👎 0
  • package leetcode.editor.cn; /** * Classname ${NAME} * Description 415:字符串相加 * Date ${DATE} ${TIME} * author ${USER} */ public class AddStrings { public static void main(String[] args) { Solution solution = new AddStrings().new Solution(); // TO TEST } //leetcode submit region begin(Prohibit modification and deletion) class Solution { public String addStrings(String num1, String num2) { StringBuilder str = new StringBuilder(); StringBuilder sb1 = new StringBuilder(num1); StringBuilder sb2 = new StringBuilder(num2); sb1.reverse(); sb2.reverse(); int index = 0; int sum = 0; while (index < sb1.length() || index < sb2.length()) { if (index < sb1.length()) { sum += (sb1.charAt(index) - '0'); } if (index < sb2.length()) { sum += (sb2.charAt(index) - '0'); } if (sum >= 10) { str.insert(0, (sum % 10)); sum /= 10; } else { str.insert(0, sum); sum = 0; } index++; } if (sum > 0) { str.insert(0, sum); } return str.toString(); } } //leetcode submit region end(Prohibit modification and deletion) }