题目描述
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

注意:

num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。

题目分析
常规的加法逻辑模拟题,应该说难度不大,需要的是细心加扎实的编码能力。

class Solution {
public:string addStrings(string num1, string num2) {std::string result;int right1 = static_cast<int>(num1.size()) - 1;int right2 = static_cast<int>(num2.size()) - 1;int carry = 0;while (right1 >= 0 && right2 >= 0) {std::tuple<int, int> tmp = charAdd(num1[right1], num2[right2], carry);result.insert(0, 1, std::get<0>(tmp) + '0');carry = std::get<1>(tmp);--right1;--right2;}while (right1 >= 0) {std::tuple<int, int> tmp = charAdd(num1[right1], '0', carry);std::get<0>(tmp);result.insert(0, 1, std::get<0>(tmp) + '0');carry = std::get<1>(tmp);--right1;}while (right2 >= 0) {std::tuple<int, int> tmp = charAdd('0', num2[right2], carry);result.insert(0, 1, std::get<0>(tmp) + '0');carry = std::get<1>(tmp);--right2;}if (carry > 0) {result.insert(0, 1, carry + '0');    }return result;}std::tuple<int, int> charAdd(const char ch1, const char ch2, const int carry) {int sum = ch1 - '0' + ch2 - '0' + carry;return std::make_tuple<int, int>(sum >= 10 ? sum-10 : sum, sum >= 10 ? 1 : 0);}
};

上述代码用C++编写,学习C++推荐Effective C++ 第三版(中文)电子书pdf下载链接:
链接: https://pan.baidu.com/s/1QNMlG_b_uRA5frwpJ3JXFQ

提取码获取方式:关注微信公众号ziyuanjihe88,回复关键字:1150

LeetCode 415.字符串相加相关推荐

  1. LeetCode 415. 字符串相加 (逢十进一模版字符处理)

    415. 字符串相加 题意: 用两个字符串表示两个数 求出其相加的结果 不能使用任何内建 BigInteger 库 不能直接将输入的字符串转换为整数形式 思路: 翻转字符串,将其转为字符数组,即从下标 ...

  2. Leetcode 415. 字符串相加

    难度:简单 频率:119 题目: 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回. 你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也 ...

  3. leetcode 415. 字符串相加(Java版)

    题目 https://leetcode-cn.com/problems/add-strings/ 题解 代码 /*** 给定两个字符串形式的非负整数 num1 和 num2 ,计算它们的和.*/ pu ...

  4. LeetCode 415. 字符串相加(大数加法)

    1. 题目 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意:num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num ...

  5. Leetcode 415. 字符串相加 (每日一题 20210826 同类型题)

    给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和.提示:num1 和num2 的长度都小于 5100 num1 和num2 都只包含数字 0-9 num1 和num2 都不包含任何前 ...

  6. 2022-3-31 Leetcode 415.字符串相加

    最终版,难度不大,魔鬼细节 class Solution {public:string addStrings(string num1, string num2) {reverse(num1.begin ...

  7. 【LeetCode笔记】415. 字符串相加(Java、字符串)

    题目描述 不能直接把字符串转换成整数(会溢出) 面试被问过,今天刷面经又刷到..那就索性水一篇文吧! 更新:原题就是 leetcode 415 思路 & 代码 只要理好字符串s.字符串t.答案 ...

  8. leetcode刷题——415. 字符串相加

    题目描述 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 提示: num1 和num2 的长度都小于 5100 num1 和num2 都只包含数字 0-9 num1 和num2 ...

  9. LeetCode 43. 字符串相乘(大数乘法)

    文章目录 1. 题目 2. 小学竖式乘法 2.1 普通版 2.2 优化版 1. 题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示 ...

最新文章

  1. 【iOS】NSDate分类,获得中国农历
  2. python_day10
  3. 7000 字精华总结,Pandas/Sklearn 进行机器学习之特征筛选,有效提升模型性能
  4. 打桥位lisp_lisp函数
  5. 【Java】什么?你项目还在用Date表示时间?!日期类LocalDateTime的使用
  6. docker 安装 centos
  7. 类与对象初识 类是模具 对象是产品 0314 2101
  8. 4个mos管驱动的全桥电路原理_逆变电源中的三种保护电路讲解
  9. putty 登陆Linux 标签栏显示当前ip
  10. 从zabbix的数据库获取数据
  11. 下载频道用户使用指南!!
  12. 三菱FX3UFX2NFX1N PLC 模拟器模拟通信功能,模拟PLC实体
  13. 循环冗余校验码(计算机组成原理12)
  14. 新手建网站的步骤及注意事项
  15. 用freepy一键生成中美GDP季度对比柱状图
  16. 算24点我的算法分享
  17. 乳牛悲惨的一生 -----奶牛为什么会产奶?
  18. Linux删除只读文件系统
  19. 禁止MDA对话框的产生
  20. Received HTTP code 503 from proxy after CONNECT

热门文章

  1. 容器(docker)
  2. 【带你学c带你飞】第2天课后练习
  3. log4j日志文件乱码问题的解决方法
  4. 文字转语音的配音软件,萝莉等语音资源可以自行编辑声音文本内容
  5. WinFrom内嵌chrome浏览器
  6. SpringCloud Gateway 构建全局缓存 Request 解决 body 不可重复读问题
  7. windows电脑连接蓝牙耳机经常断开解决办法
  8. VIP邮箱和免费邮箱哪个好?个人电子邮箱哪家好
  9. 2023上学期学习计划
  10. mac 备份android 手机,Mac怎么备份_Windows怎么备份_iOS怎么备份_安卓怎么备份-太平洋IT百科手机版...