首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >字符串相加(C++)

字符串相加(C++)

作者头像
GeekLiHua
发布2025-01-21 10:56:49
发布2025-01-21 10:56:49
3320
举报
文章被收录于专栏:JavaJava

作者简介:一名后端开发人员,每天分享后端开发以及人工智能相关技术,行业前沿信息,面试宝典。

字符串相加

难度简单621收藏分享切换为英文接收动态反馈

给定两个字符串形式的非负整数 num1num2 ,计算它们的和并同样以字符串形式返回。

你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。

示例 1:

代码语言:javascript
复制
输入: num1 = "11", num2 = "123"
输出: "134"

示例 2:

代码语言:javascript
复制
输入: num1 = "456", num2 = "77"
输出: "533"

示例 3:

代码语言:javascript
复制
输入: num1 = "0", num2 = "0"
输出: "0"

提示:

  • 1 <= num1.length, num2.length <= 104
  • num1num2 都只包含数字 0-9
  • num1num2 都不包含任何前导零
代码语言:javascript
复制
class Solution {
public:
    string addStrings(string num1, string num2) {
        int len1 = num1.size() - 1, len2 = num2.size() - 1, carry = 0;
        string ans = "";
        // 这个题就是高精度加法的转换题 
        while(len1 >= 0 || len2 >= 0 || carry != 0)
        {
            int x = len1 >= 0 ? num1[len1] - '0' : 0;
            int y = len2 >= 0 ? num2[len2] - '0' : 0;
            int t = x + y + carry;
            ans.push_back('0' + t % 10);
            carry = t / 10;
            len1 -= 1;
            len2 -= 1;
        }
        reverse(ans.begin(), ans.end());
        return ans;
    }
};

对应我的掘金文章:https://juejin.cn/post/7147266124055314469#comment

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字符串相加
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档