字符串经典题之大数相加
题目
字符串相加
解答
相加时按照对应为相加即可,注意有的时候相加可能会导致进位,所以我们可以定义一个变量next,next取值为0表示不进位,next取值为1表示进位。拿出对应位的字符的时候,将他们加起来(也包括next),然后判断相加的结果是否大于10,如果大于10把next设置为1,否则设置为0,。每算完一个结果,就把结果push进一个string里。最后将结果反转。
需要注意的时候,加完之后要判断一下这个进位是否归为0,因为有时会出现9999+1=10000这种情况,如果不判断话,结果就编程了0000了
具体的细节实现,见代码注释
代码
class Solution {public:string addStrings(string num1, string num2) {string ret;//返回结果字符串int end1=num1.size()-1;int end2=num2.size()-1;//end1和end2分别用来从后向前扫描num1和num2字符串int next=0;//标记进位while(end1>=0 || end2>=0)//扫描{int ret1=0,ret2=0;//用来接受对应单个位置的字符if(end1>=0){ret1=num1[end1--]-'0';//转换为数字}if(end2>=0){ret2=num2[end2--]-'0';//转换为数字}int retch=ret1+ret2+next;//单位相加注意加进位if(retch>=10)//如果大于10表示,下一位要进位{retch-=10;//留下个位数字next=1;}else{next=0;//如果不大于10,就不仅为}ret+=(retch+'0');//转化为字符,并尾插到返回字符数组中}if(next==1)//有一种特殊情况就是9999+1,所以特殊处理{ret+='1';}reverse(ret.begin(),ret.end());//由于是尾插所以注意反转return ret;}
};
字符串经典题之大数相加相关推荐
- 字符串经典题之正则匹配字符串
题目 字符串通配符 注意 此题和LeetCode 10:正则表达式匹配这道题虽然看着一样,但是本质不一样.力扣上的这道题,对于*匹配的是它前面的0个或多个,是单个字符,而牛客的这道题*匹配任意字符串多 ...
- 字符串经典题之参数解析
题目 参数解析(点击跳转) 这道题并不慢,主要是一些细节得注意.尤其是第三个参数和第四个参数可能会出现引号,所以在大的情况下得把遇到引号和不是引号的情况分开来讨论.我们建立一个临时变量temp,它用来 ...
- 字符串经典题之扑克牌的大小
题目 这种类型的题目不涉及算法,和我们日常的业务逻辑十分相似.最关键的一点就是思维清晰,逐步细化. 比较的时候首先比较类型,如果两副牌的数目相同,那么肯定是相同类型的,在这种情况下再去比较点数,而比较 ...
- zcmu-1181(大数相加)
1181: a+b(不同于第一题) Time Limit: 10 Sec Memory Limit: 128 MB Submit: 920 Solved: 303 [Submit][Status] ...
- 大数系列之大数相加(ACM通过)(一)
大数相加 概述:本题主要解决HDU 1002的大数相加问题并且成功AC 主要思路 1:定义两个字符数组和两个int型数组,输入字符串数组 2:将两个字符数组的长度用'0'补到一样长 3:倒着存入int ...
- 牛客题霸 [ 大数加法]C++题解/答案
牛客题霸 [ 大数加法]C++题解/答案 题解: 本质就是模拟加法运算 想要让s与t长度统一,不足的部分用0来补充 然后从最后一位开始,两个数相加,同时如果超过10,就把多的部分加到下一位 其实就是我 ...
- javascript乘法和加法_JavaScript大数相加相乘的实现方法实例
前言 JavaScript 中的最大安全整数是 2 ^{53} – 1 ,即 9007199254740991,当我们进行超出这个范围的数值计算的时候就无法得到精确的值,而是一个近似值,比如我们计算 ...
- 大数相乘、大数相加、大数相减Java版本
为什么80%的码农都做不了架构师?>>> 题目:两个非常大的数字相乘(相加,相减) 该题目在java中可以使用BigInteger类中的方法来实现.否则的话可以使用如下方式来实 ...
- python进行两个大数相加
python进行两个大数相加:由于int类型32位或64位都有长度限制,超出会内存溢出,无法计算,那么解决方法如下: 思路: 1.将超长数转换成字符串 2.进行长度补零,即让两个要计算的字符串长度一样 ...
最新文章
- 二叉树(构造与遍历方法)
- Viber4android,Viber更新4.0 推出全新贴纸市场,并支持安卓平板
- 重磅:2020 Gitee 开源年报发布!
- python考试题库 pcap_使用Python修改PCAP
- Android模拟器(包括Genymotion)访问本机服务器
- java8 :: 用法 (JDK8 双冒号用法)
- haproxy负载均衡_使用haproxy搭建web集群
- linux的sh文件怎么执行,linux下执行sh文件的四种做法
- 解决Tocmat6.x的catalina.out日志不断增加问题
- 一次数据库优化的对话
- spring @POSTConstruction注解的作用
- ADT(abstract data types)抽象数据类型
- scala教程(二) 函数
- NTC热敏电阻温度计算以及C语言实现
- Minpro-I编程器的驱动安装
- Win10环境下ubuntu安装教程
- openstack项目_新项目,安全性以及更多OpenStack新闻
- linux中磁盘阵列说明,常用磁盘阵列说明
- linux开发之deamon的写法
- 百度快速排名关键词点击软件
热门文章
- mysql可以使用mybaties框架吗_搭建一个简单的mybatis框架
- 傻子坐飞机问题的求解
- 吴恩达机器学习笔记四之正则化
- “过午不食”实锤了!协和医院最新研究:每天6:00-15:00进食,其它时间不吃饭!...
- 这一路,信念很简单,把书念下去,然后走出去,不枉活一世
- Mac如何快速导出保存Pages文档里的图片
- Audacity Mac版教程,使用Audacity编辑音频波形图的方法步骤
- python 表示图论_Python 图论工具 | 学步园
- if函数python作用_if __name__== __main__ 的意思(作用)python代码复用
- phpexcel的使用方法详细介绍