美文网首页
415_Add_Strings 字符串相加

415_Add_Strings 字符串相加

作者: lazy_ccccat | 来源:发表于2020-01-15 00:26 被阅读0次

题目描述

https://leetcode-cn.com/problems/add-strings/

解法

解法1:我的解法

class Solution {
public:
    string addStrings(string num1, string num2) {
        string res;
        int i = num1.size() - 1;
        int j = num2.size() - 1;
        int carry = 0;
        for (; i >= 0 && j >= 0; i--, j--) {
            int sum = (num1[i] - '0') + (num2[j] - '0') + carry;
            int val = sum % 10;
            carry = sum / 10;
            //res.insert(size_t(0), size_t(1), val + '0');
            res.insert(res.begin(), val + '0');
        }
        int index;
        string left;
        if (i >= 0) {
            index = i;
            left = num1;
        } else {
            index = j;
            left = num2;
        }
        while (index >= 0) {
            int sum = left[index] - '0' + carry;
            int val = sum % 10;
            carry = sum / 10;
            //res.insert(size_t(0), size_t(1), val + '0');
            res.insert(res.begin(), val + '0');
            index--;
        }
        if (carry) {
            //res.insert(size_t(0), size_t(1), carry + '0');
            res.insert(res.begin(), carry + '0');
        }
        return res;
    }
};

没啥好说的,就是模拟手工加法,但是写的太长了,啰嗦。一会贴一个别人写的简洁版本。
另外 res.insert(0, 1, carry + '0'); 不知道为啥突然编译不过了,说call to member function 'insert' is ambiguous。加了size_t()就好了。
然后参考了别人的提交,res.insert(res.begin(), carry + '0'); 这么写也可以,以后用这个重载版本吧。

解法2:简洁

思路一样,就是写法简洁,体会一下。用或,缺少的就补0.

class Solution {
public:
    string addStrings(string num1, string num2) {
       int i = num1.size() - 1;
       int j = num2.size() - 1;
       string res;
       int carry = 0;
       while (i >= 0 || j >= 0) {
           int a = (i >= 0) ? num1[i--] - '0' : 0;
           int b = (j >= 0) ? num2[j--] - '0' : 0;
           int sum = a + b + carry;
           int val = sum % 10;
           carry = sum / 10;
           res.insert(res.begin(), val + '0');
       }
       return carry ? "1" + res : res;
    }
};

相关文章

  • 415_Add_Strings 字符串相加

    题目描述 https://leetcode-cn.com/problems/add-strings/ 解法 解法1...

  • LeetCode-415-字符串相加

    LeetCode-415-字符串相加 415. 字符串相加[https://leetcode-cn.com/pro...

  • Python3的字符串使用

    字符串可以相加,相乘

  • JAVA之字符串总结

    一、字符串总结 1.字符串和字符串相加 2.字符串和数字相加 3.计算字符串的长度 4.判断字符串是否相等 5.字...

  • [Python]数据格式

    字符串 ‘’ “”一样 转译' " \ \n 相加:str1+str2;字符串和数字不能直接相加,要转换格式 转换...

  • 连字符+

    连字符:连接字符串相加的符号(必须由字符串参与) 任何类型与String相加,其结果都是String +号左右有字...

  • 神奇的Javascript

    在JavaScript中,加法的规则其实很简单,只有两种情况:你只能把数字和数字相加,或者字符串和字符串相加,所有...

  • 2019-06-29

    整数相加输出整数运算结果。字符和整数相加会输出字符ASCII码和整数的运算结果。而字符串再加其他类型都为字符串。 ...

  • 字符串模拟大数相加

    题目描述:用字符串模拟两个大数相加。

  • 字符串相加

    给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 51...

网友评论

      本文标题:415_Add_Strings 字符串相加

      本文链接:https://www.haomeiwen.com/subject/lkuzactx.html