//
给定两个字符串形式的非负整数 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 <= 104
// num1
和num2
都只包含数字 0-9
// num1
和num2
都不包含任何前导零
//
//
👍 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)
}