5.15
这种以字符串的形式表示整数,然后计算求和结果的题已经出过很多次了,不知道为什么又弄了一道英文的。
本以为会在时间复杂度啊什么的做更多的要求,但是实际上并没有。
还是又敲了一遍代码,就当熟练了吧。
public class Solution {
/**
* @param num1 a non-negative integers
* @param num2 a non-negative integers
* @return return sum of num1 and num2
*/
public String addStrings(String num1, String num2) {
// Write your code here
int a = num1.length()-1;
if(a == -1){
return num2;
}
int b = num2.length()-1;
if(b == -1){
return num1;
}
int flag = 0;
String sum = "";
while( a >= 0 && b >= 0){
int tmp = num1.charAt(a) + num2.charAt(b) - '0' - '0' + flag;
flag = tmp/10;
tmp = tmp%10;
sum = Integer.toString(tmp) + sum;
a--;
b--;
}
while( a >= 0){
int tmp = num1.charAt(a) - '0' + flag;
flag = tmp/10;
tmp = tmp%10;
sum = Integer.toString(tmp) + sum;
a--;
}
while( b >= 0){
int tmp = num2.charAt(b) - '0' + flag;
flag = tmp/10;
tmp = tmp%10;
sum = Integer.toString(tmp) + sum;
b--;
}
if(flag == 1){
sum = "1" + sum;
}
return sum;
}
}