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;
}