今日算法之_125_字符串相加
前言
Github:https://github.com/HealerJean
1、字符串相加
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
1.1、解题思路
类似于二进制之和
1.2、算法
public String addStrings(String num1, String num2) {
StringBuilder append = new StringBuilder();
int i = num1.length() - 1;
int j = num2.length() - 1;
int t = 0;
while (j >= 0 || i >= 0 || t > 0) {
int pre = i < 0 ? 0 : Integer.valueOf(String.valueOf(num1.charAt(i--)));
int post = j < 0 ? 0 : Integer.valueOf(String.valueOf(num2.charAt(j--)));
int sum = pre + post + t;
t = sum / 10;
append.append(sum % 10);
}
return append.reverse().toString();
}
1.3、测试
@Test
public void test() {
System.out.println(addStrings("9", "99"));
}