string Solution::addBigInteger(string s1, string s2) {
stack> ss1;
stack> ss2;
for (char i : s1) {
ss1.push(i);
}
for (char j : s2) {
ss2.push(j);
}
int len = (int) min(s1.length(), s2.length());
vector result;
int a,b,c=0;
for (int k =0; k < len; ++k) {
a = ss1.top() -'0';
b = ss2.top() -'0';
ss1.pop();
ss2.pop();
result.push_back(((a + b + c) %10) +'0');
c = (a + b + c ) /10;
}
if(c){
if(s1.length() > len){
while(!ss1.empty()){
a = ss1.top() -'0';
result.push_back((a + c) %10 +'0');
c = (a + c) /10;
ss1.pop();
}
}else if(s2.length() > len){
a = ss1.top() -'0';
while(!ss2.empty()){
result.push_back((a + c) %10 +'0');
c = (a + c) /10;
ss2.pop();
}
}
}else{
if(s1.length() > len){
while(!ss1.empty()){
result.push_back(ss1.top());
ss1.pop();
}
}else if(s2.length() > len){
while(!ss2.empty()){
result.push_back(ss2.top());
ss2.pop();
}
}
}
string re;
for(auto i = result.rbegin(); i!= result.rend(); i++){
re+= *i;
}
return re;
}
网友评论