LeetCode 415.字符串相加 C++写法

LeetCode 415.字符串相加 C++写法

思路🤔:

首先不能用stoi和tostring来做,如果给一个很大的数那一定存不下。我们可以从后往前一位一位的取 ,创建一个变量存储进位 用于计算下一位数,之后取模得到当前数字 ,每一位尾插在新创建的string中 ,完成所有尾插后用reverse进行逆置就是我们要得到的结果。

代码🔎:

C++ 复制代码
class Solution {
public:
    string addStrings(string num1, string num2) {
        int end1 = num1.size() - 1;
        int end2 = num2.size() - 1;
        int next = 0; //存进位
        string str; //用于存结果
        while(end1 >= 0 || end2 >= 0) //两个字符串都走完才算完成相加
        {
            int x1 = end1 >= 0 ? num1[end1] - '0' : 0; //当一个已经走完了,那么就为0,不再相加
            int x2 = end2 >= 0 ? num2[end2] - '0' : 0;
            int ret = x1 + x2 + next; //计算相加后为多少
            next = ret / 10; //取进位
            ret = ret % 10; //取当前数字用于尾插
            str += ('0' + ret); //尾插
            end1--;
            end2--;
        }
        if (next == 1) //防止出现num1=9,num2=1的情况
            str += '1';
        reverse(str.begin(),str.end()); //逆置
        return str;
    }
};
相关推荐
流云鹤1 分钟前
牛客周赛Round 132(无F)
算法
Lee川4 分钟前
深入解析:从内存模型到作用域陷阱——JavaScript变量的前世今生
javascript·算法
㓗冽11 分钟前
回文数2(字符串)-基础题97th + 加法器(字符串)-基础题98th + 构造序列(字符串)-基础题99th
算法
肆忆_13 分钟前
Day 04|线程安全引用计数:让 SharedPtr 支持并发拷贝/析构
c++
三水彡彡彡彡33 分钟前
C++拷贝函数:const与引用的高效实践
开发语言·c++
陈天伟教授1 小时前
人工智能应用- 预测化学反应:02. 化学反应简介
人工智能·神经网络·算法·机器学习·推荐算法
D_evil__2 小时前
【Effective Modern C++】第七章 并发API:35. 优先考虑基于任务的编程而非基于线程的编程
c++
plus4s2 小时前
2月23日(97-99题)
算法
hansang_IR2 小时前
【记录】AT_abc406模拟赛
c++·算法·模拟赛
blackicexs2 小时前
第六周第一天
数据结构·算法