0
点赞
收藏
分享

微信扫一扫

力扣415. 字符串相加_填补我不会使用数字字符串进行相加的问题

哈哈镜6567 2022-04-04 阅读 79
c++

415. 字符串相加

解题思路

代码

class Solution {
public:
//很好的题,一般用string模拟大数相加
    string addStrings(string num1, string num2) {
        //字符串直接相加,一般指的是字符串的简单拼接,比如num1+num2
        
        string ans = "";
        int carry=0;
        //模板
        //从后往前进行相加
        //i和j有一个不为0就要继续
        //carry表示进位,最大为1,如果有进位的需要,那也要继续遍历
        for(int i=num1.size()-1,j=num2.size()-1;i>=0||j>=0||carry==1;i--,j--){
            int x = i<0?0:num1[i]-'0';
            int y = j<0?0:num2[j]-'0';
            ans = ans + to_string((x+y+carry)%10);//取个位
            carry = (x+y+carry)/10;//取整位
        }
        reverse(ans.begin(),ans.end());
        return ans;
    }
};
举报

相关推荐

0 条评论