#include <sstream> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ string solve(string s, string t) { // write code here if (s.length() < t.length()) { string temp = s; s = t; t = temp; } vector<char> sVector; vector<char> tVector; string value(""); int flag = 0; sVector.assign(s.begin(), s.e***ector.assign(t.begin(), t.end()); reverse(sVector.begin(), sVector.end()); reverse(tVector.begin(), tVector.end()); for (vector<char>::iterator iter = sVector.begin(); iter != sVector.end(); ++iter) { *iter -= '0'; } for (vector<char>::iterator iter = tVector.begin(); iter != tVector.end(); ++iter) { *iter -= '0'; } vector<char>::iterator iterS = sVector.begin(); vector<char>::iterator iterT = tVector.begin(); if (s.length() != t.length()) { for (int i = 0; i < sVector.size(); i++) { int tempInt = 0; if (i == tVector.size()) { while (flag) { if (i == sVector.size()) { sVector.push_back(flag); break; } tempInt = *(iterS + i) + flag; *(iterS + i) = tempInt % 10; flag = tempInt / 10; tempInt = 0; i++; } break; } tempInt = *(iterS + i) + *(iterT + i) + flag; *(iterS + i) = tempInt % 10; flag = tempInt / 10; } } else { for (int i = 0; i < sVector.size(); i++) { int tempInt = 0; tempInt = *(iterS + i) + *(iterT + i) + flag; *(iterS + i) = tempInt % 10; flag = tempInt / 10; } if (flag) { sVector.push_back(flag); } } reverse(sVector.begin(), sVector.end()); for (vector<char>::iterator iter = sVector.begin(); iter != sVector.end(); ++iter) { value += *iter + '0'; } return value; } };