LeetCode——415. 字符串相加

C++开头
在这里插入图片描述

‍️‍️‍️‍️Take your time ! ‍️‍️‍️‍️
个人主页:大魔王
所属专栏:魔王的修炼之路–C++
如果你觉得这篇文章对你有帮助,请在文章结尾处留下你的点赞关注,支持一下博主。同时记得收藏✨这篇文章,方便以后重新阅读。

415. 字符串相加

这是个简单题,主要是为了下一个字符串相乘博客能用上。

要注意的点就一个:最后当有一个结束时,检查一下flag是否为1,也就是是否还进了1没处理。

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。
你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。
示例 1:
输入:num1 = “11”, num2 = “123”
输出:“134”
示例 2:
输入:num1 = “456”, num2 = “77”
输出:“533”
示例 3:
输入:num1 = “0”, num2 = “0”
输出:“0”

class Solution {
public:
    string addStrings(string num1, string num2) {
        string s;
        int n1 = 0,n2 = 0;
        int flag = 0;
        int sum = 0;
        string::iterator cur1 = num1.end() - 1;
        string::iterator cur2 = num2.end() - 1;
        while(cur1 >= num1.begin() || cur2 >= num2.begin())
        {
            n1 = cur1 >=num1.begin() ? *cur1 - '0' : 0;
            n2 = cur2 >=num2.begin() ? *cur2 - '0' : 0;//等到越界的时候也没事,因为三目操作符会选择性执行,只会去比那块的地址,不会访问进去。
            sum = n1 + n2 + flag;
            flag = 0;
            if(sum > 9)
            {
                flag = 1;
                sum -= 10;
            }
            s += sum + '0'; 
            cur1--;
            cur2--;
        }
        if(flag)
            s += 1 + '0';
        reverse(s.begin(), s.end());
        cout << s;
        return s;
    }
};
  • 博主长期更新,博主的目标是不断提升阅读体验和内容质量,如果你喜欢博主的文章,请点个赞或者关注博主支持一波,我会更加努力的为你呈现精彩的内容。

专栏推荐
魔王的修炼之路–C语言
魔王的修炼之路–数据结构初阶
魔王的修炼之路–C++
魔王的修炼之路–Linux
更新不易,希望得到友友的三连支持一波。收藏这篇文章,意味着你将永久拥有它,无论何时何地,都可以立即找到重新阅读;关注博主,意味着无论何时何地,博主将永久和你一起学习进步,为你带来有价值的内容。

你可能感兴趣的:(力扣题目汇总,leetcode,算法,c语言,c++)