有点像LeetCode第 2 题:两数相加(C++)_qq_32523711的博客-CSDN博客_definition for singly-linked list.两数相加c++
考虑进位传递就可以了,不能转化为数字,那就是要ascii码相对大小进行操作:
class Solution {
public:
string addStrings(string num1, string num2) {
string res;
int i = num1.size()-1, j = num2.size()-1, cur = 0;
while(i >= 0 || j >= 0 || cur != 0){
if(i >= 0) cur += num1[i--]-'0';
if(j >= 0) cur += num2[j--]-'0';
res += to_string(cur%10); //相加为两位数的时候只需要第一位
cur = cur/10; //cur保存这一次计算的进位
}
reverse(res.begin(), res.end());
return res;
}
};