415. Add Strings 字符串相加

题目链接
tag:

  • easy

question:
  Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2.

Note:

  • The length of both num1 and num2 is < 5100.
  • Both num1 and num2 contains only digits 0-9.
  • Both num1 and num2 does not contain any leading zero.
  • You must not use any built-in BigInteger library or convert the inputs to integer directly.

思路:
  就是用两个String表示的数字,不用库的情况下实现加法。其实说白了就是高精度加法。从末尾开始相加,一位一位相加,然后算进位,最后根据进位情况看需不需要补一个高位,难度不大,参见代码如下:

class Solution {
public:
    string addStrings(string num1, string num2) {
        if (num1.size() < num2.size()) {
            string tmp = num1;
            num1 = num2;
            num2 = tmp;
        }
        int ai = num1.size()-1, bi = num2.size()-1, valueA = 0, valueB = 0, flag = 0;
        vector<int> result;
        while (ai >= 0) {
            if (bi < 0) {
                valueB = 0;
            }
            else {
                valueB = num2[bi--] - 48;
            }
            valueA = num1[ai--] - 48;
            int sum = valueA + valueB + flag;
            flag = sum / 10;
            result.push_back(sum % 10);
        }
        if (flag == 1) {
            result.push_back(1);
        }  
        string output = "";
        vector<int>::iterator it;
        for (it=result.begin(); it!=result.end(); ++it) {
            output += to_string(*it);
        }
        string _output(output.rbegin(), output.rend());  
        return _output;
    }
};
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 链接 https://leetcode-cn.com/problems/add-strings/descripti...
    singed阅读 3,375评论 0 1
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,211评论 0 10
  • 今天我要胡思乱想的是一个关于时差的问题。本人是个半伪球迷,之前也一直半夜起来为喜欢的球队奉献自己宝贵的睡眠时间,也...
    鹿鹿无畏阅读 3,693评论 0 51
  • 最近跟着同学去做事,感觉呆呆的手足无措不知道是不是没有做过太多的事,还是经历的太少。后面想着提升自己,但仔细一想提...
    随然阅读 2,338评论 0 0

友情链接更多精彩内容