415. Add Strings

这道题的类型和2.add two numbers 是一样的,只不过2的里面是2个list相加,这个是两个string相加。

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

Note:

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

和leetcode 2 相似,遍历两个string,直到2个string都遍历完了,用一个sum记录当前的进位和剩余值,只是要注意string res每次加上去的是反过来的数,最后要reverse 一下。

还有一个问题是用 - ‘0’实现char和int 的转换

代码如下:

class Solution {
public:
    string addStrings(string num1, string num2) {
        int sum = 0;
        int i = num1.size() - 1;
        int j = num2.size() - 1;
        string res = "";
        while(i >=0 || j >= 0) {
            if (i >= 0)
                sum += num1[i] - '0';// 用 - ‘0’实现char和int的转换。
            if (j >= 0)
                sum += num2[j] - '0';
            res += sum % 10 + '0';
            sum = sum / 10;
            i--;
            j--;
        }
        while (sum) {
            res += sum % 10 + '0';
            sum = sum / 10;
        } 
        reverse(res.begin(), res.end());// don't forget to reverse the string
        return res;
    }
};




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值