leetcode 415. 字符串相加(Add Strings)
题目描述:
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
num1和num2的长度都小于 5100.num1和num2都只包含数字0-9.num1和num2都不包含任何前导零。- 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
解法:
class Solution {
public:
string addStrings(string num1, string num2) {
string a = num1;
string b = num2;
int i = a.size() - 1;
int j = b.size() - 1;
int carry = 0;
string res = "";
while(i >= 0 && j >= 0){
int val = a[i] + b[j] - '0' - '0' + carry;
if(val >= 10){
val-= 10;
carry = 1;
}else{
carry = 0;
}
res = char('0' + val) + res;
i--;
j--;
}
while(i >= 0){
int val = a[i] - '0' + carry;
if(val >= 10){
val-= 10;
carry = 1;
}else{
carry = 0;
}
res = char('0' + val) + res;
i--;
}
while(j >= 0){
int val = b[j] - '0' + carry;
if(val >= 10){
val-= 10;
carry = 1;
}else{
carry = 0;
}
res = char('0' + val) + res;
j--;
}
if(carry != 0){
res = char('0' + carry) + res;
}
return res;
}
};

浙公网安备 33010602011771号