难度:Easy
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
字符串相加,从最低位开始相加,留一个flag表示进位。
class Solution {public:string addStrings(string num1, string num2) {num1= '0'+num1;num2='0'+num2;while(num1.length()>num2.length())num2 = '0'+num2;while(num2.length()>num1.length())num1 = '0'+num1;int flag=0;string res;for(int i=num1.size()-1; i>0;i--){int tmp=(num1[i]-'0' ) +(num2[i] - '0')+flag;if(tmp>=10){flag=1;tmp-=10;}elseflag=0;res= (char)('0'+tmp) +res;}if(flag)res='1'+res;return res;}};
执行用时 :24 ms, 在所有 C++ 提交中击败了24.74%的用户 内存消耗 :74.6 MB, 在所有 C++ 提交中击败了6.03%的用户