415. 字符串相加 + 加法模拟
415. 字符串相加
LeetCode_415
题目详情
方法一:使用暴力法
class Solution {
public String addStrings(String num1, String num2) {
int len1 = num1.length();
int len2 = num2.length();
int inc = 0;
String result = "";
int i=len1-1,j = len2-1;
for(; i>=0 && j>=0; i--,j--){
int a = Integer.parseInt(""+num1.charAt(i));
int b = Integer.parseInt(""+num2.charAt(j));
int total = inc + a + b;
inc = total / 10;
int now = total % 10;
result = String.valueOf(now) + result;
}
if(i >= 0){//num1还有剩余
for(; i>=0; i--){
int a = Integer.parseInt(""+num1.charAt(i));
int total = inc + a;
inc = total / 10;
int now = total % 10;
result = String.valueOf(now) + result;
}
}else if(j >= 0){
for(; j>=0; j--){
int b = Integer.parseInt(""+num2.charAt(j));
int total = inc + b;
inc = total / 10;
int now = total % 10;
result = String.valueOf(now) + result;
}
}
if(inc != 0)
result = String.valueOf(inc) + result;
return result;
}
}
方法二:使用StringBuilder
class Solution {
public String addStrings(String num1, String num2) {
int len1 = num1.length() - 1;
int len2 = num2.length() - 1;
int inc = 0;
StringBuilder sb = new StringBuilder();
while(len1 >= 0 || len2 >= 0){
int a = len1 >=0 ? num1.charAt(len1) - '0' : 0;
int b = len2 >=0 ? num2.charAt(len2) - '0' : 0;
int total = inc + a + b;
inc = total / 10;
sb.append(total % 10);
len1--;
len2--;
}
if(inc == 1)
sb.append("1");
sb.reverse();
return sb.toString();
}
}
Either Excellent or Rusty