/* 直接遍历 注意不能将s、t直接转成数字相加,因为可能会超出int范围 */ #include <algorithm> #include <iterator> #include <string> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ string solve(string s, string t) { // write code here reverse(s.begin(),s.end()); reverse(t.begin(),t.end()); string t_s = "", t_t = ""; int i=0,j=0; int flag = 0; string ans = ""; while(i<s.size() || j<t.size()) { if(i<s.size() && j<t.size()) { int temp = (s[i]-'0' + t[j]-'0' + flag); ans += to_string(temp%10); flag = temp/10; ++i; ++j; } else if(i<s.size()) { int temp = (s[i]-'0' + flag); ans += to_string(temp%10); flag = temp/10; ++i; } else { int temp = (t[i]-'0' + flag); ans += to_string(temp%10); flag = temp/10; ++j; } } if(flag!=0) ans += to_string(flag); reverse(ans.begin(),ans.end()); return ans; } };