题目:字符串相加
描述: 给定两个字符串形式的非负整数 和 ,计算它们的和。
注意:
- 和 的长度都小于 .
- 和 都只包含数字 .
- 和 都不包含任何前导零。
- 你不能使用任何內建 库, 也不能直接将输入的字符串转换为整数形式。
解法:进制
public static String addStrings(String num1, String num2) {
int index = 0;
int l1 = num1.length();
int l2 = num2.length();
int size = Math.max(l1, l2) + 1;
char[] chars = new char[size];
int flag = 0;
while (index < l1 || index < l2) {
int n1 = index < l1 ? num1.charAt(l1 - 1 - index) - 48 : 0;
int n2 = index < l2 ? num2.charAt(l2 - 1 - index) - 48 : 0;
int sum = n1 + n2 + flag;
chars[size - 1 - index] = (char)(sum % 10 + 48);
flag = sum >= 10 ? 1 : 0;
index ++;
}
if (flag == 1) {
chars[0] = '1';
} else {
chars = Arrays.copyOfRange(chars, 1, size);
}
return String.valueOf(chars);
}