LeetCode 415.字符串相加
题目描述
给定两个字符串形式的非负整数 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.字符串相加相关推荐
- LeetCode 415. 字符串相加 (逢十进一模版字符处理)
415. 字符串相加 题意: 用两个字符串表示两个数 求出其相加的结果 不能使用任何内建 BigInteger 库 不能直接将输入的字符串转换为整数形式 思路: 翻转字符串,将其转为字符数组,即从下标 ...
- Leetcode 415. 字符串相加
难度:简单 频率:119 题目: 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回. 你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也 ...
- leetcode 415. 字符串相加(Java版)
题目 https://leetcode-cn.com/problems/add-strings/ 题解 代码 /*** 给定两个字符串形式的非负整数 num1 和 num2 ,计算它们的和.*/ pu ...
- LeetCode 415. 字符串相加(大数加法)
1. 题目 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意:num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num ...
- Leetcode 415. 字符串相加 (每日一题 20210826 同类型题)
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和.提示:num1 和num2 的长度都小于 5100 num1 和num2 都只包含数字 0-9 num1 和num2 都不包含任何前 ...
- 2022-3-31 Leetcode 415.字符串相加
最终版,难度不大,魔鬼细节 class Solution {public:string addStrings(string num1, string num2) {reverse(num1.begin ...
- 【LeetCode笔记】415. 字符串相加(Java、字符串)
题目描述 不能直接把字符串转换成整数(会溢出) 面试被问过,今天刷面经又刷到..那就索性水一篇文吧! 更新:原题就是 leetcode 415 思路 & 代码 只要理好字符串s.字符串t.答案 ...
- leetcode刷题——415. 字符串相加
题目描述 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 提示: num1 和num2 的长度都小于 5100 num1 和num2 都只包含数字 0-9 num1 和num2 ...
- LeetCode 43. 字符串相乘(大数乘法)
文章目录 1. 题目 2. 小学竖式乘法 2.1 普通版 2.2 优化版 1. 题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示 ...
最新文章
- 【iOS】NSDate分类,获得中国农历
- python_day10
- 7000 字精华总结,Pandas/Sklearn 进行机器学习之特征筛选,有效提升模型性能
- 打桥位lisp_lisp函数
- 【Java】什么?你项目还在用Date表示时间?!日期类LocalDateTime的使用
- docker 安装 centos
- 类与对象初识 类是模具 对象是产品 0314 2101
- 4个mos管驱动的全桥电路原理_逆变电源中的三种保护电路讲解
- putty 登陆Linux 标签栏显示当前ip
- 从zabbix的数据库获取数据
- 下载频道用户使用指南!!
- 三菱FX3UFX2NFX1N PLC 模拟器模拟通信功能,模拟PLC实体
- 循环冗余校验码(计算机组成原理12)
- 新手建网站的步骤及注意事项
- 用freepy一键生成中美GDP季度对比柱状图
- 算24点我的算法分享
- 乳牛悲惨的一生 -----奶牛为什么会产奶?
- Linux删除只读文件系统
- 禁止MDA对话框的产生
- Received HTTP code 503 from proxy after CONNECT
热门文章
- 容器(docker)
- 【带你学c带你飞】第2天课后练习
- log4j日志文件乱码问题的解决方法
- 文字转语音的配音软件,萝莉等语音资源可以自行编辑声音文本内容
- WinFrom内嵌chrome浏览器
- SpringCloud Gateway 构建全局缓存 Request 解决 body 不可重复读问题
- windows电脑连接蓝牙耳机经常断开解决办法
- VIP邮箱和免费邮箱哪个好?个人电子邮箱哪家好
- 2023上学期学习计划
- mac 备份android 手机,Mac怎么备份_Windows怎么备份_iOS怎么备份_安卓怎么备份-太平洋IT百科手机版...