classSolution{public:
string addStrings(string s, string t){if(s.empty())return t;if(t.empty())return s;reverse(s.begin(), s.end());reverse(t.begin(), t.end());int flag =0;
string ans ="";int m = s.size(), n = t.size();int i =0;while(i < m && i < n){int num = s[i]-'0'+t[i]-'0'+flag;
ans +=to_string(num%10);
flag = num/10;
i++;}while(i < m){int num = s[i]-'0'+flag;
ans +=to_string(num%10);
flag = num/10;
i++;}while(i < n){int num = t[i]-'0'+flag;
ans +=to_string(num%10);
flag = num/10;
i++;}if(flag)
ans +="1";reverse(ans.begin(), ans.end());return ans;}};
代码(9.5 二刷自解)
classSolution{public:
string addStrings(string s, string t){if(s[0]=='0')return t;if(t[0]=='0')return s;int m = s.size(), n = t.size();reverse(s.begin(), s.end());reverse(t.begin(), t.end());int i =0, j =0;int flag =0;
string ans;while(i < m && j < n){int num = s[i]-'0'+t[j]-'0'+flag;
ans +=to_string((num%10));
flag = num/10;
i++;j++;}while(i < m){int num = s[i]-'0'+flag;
ans +=to_string((num%10));
flag = num/10;
i++;}while(j < n){int num = t[j]-'0'+flag;
ans +=to_string((num%10));
flag = num/10;
j++;}if(flag){
ans +="1";}reverse(ans.begin(), ans.end());return ans;}};