前言:为了后续的实习面试,开始疯狂刷题,非常欢迎志同道合的朋友一起交流。因为时间比较紧张,目前的规划是先过一遍,写出能想到的最优算法,第二遍再考虑最优或者较优的方法。如有错误欢迎指正。博主首发CSDN,mcf171专栏。
博客链接:mcf171的博客
——————————————————————————————
Given two non-negative integers num1
and num2
represented as string, return the sum of num1
and num2
.
Note:
- The length of both
num1
andnum2
is < 5100. - Both
num1
andnum2
contains only digits0-9
. - Both
num1
andnum2
does not contain any leading zero. - You must not use any built-in BigInteger library or convert the inputs to integer directly.
public class Solution {
public String addStrings(String num1, String num2) {
int mark = 0;
StringBuffer sb = new StringBuffer("");
int i = 0;
while(i < num1.length() && i < num2.length()){
int val = (num1.charAt(num1.length()- i - 1) - '0') + (num2.charAt(num2.length() - i - 1) - '0') + mark;
mark = val / 10;
val %= 10;
sb.insert(0,val);
i++;
}
while(i < num1.length()){
int val = num1.charAt(num1.length() - i - 1) - '0' + mark;
mark = val / 10;
val %= 10;
sb.insert(0,val);
i++;
}
while(i < num2.length()){
int val = num2.charAt(num2.length() - i - 1) - '0' + mark;
mark = val / 10;
val %= 10;
sb.insert(0,val);
i++;
}
if(mark == 1) sb.insert(0,mark);
if(sb.length() == 0) sb.append(0);
return sb.toString();
}
}