题目

字符串相加

解答

相加时按照对应为相加即可,注意有的时候相加可能会导致进位,所以我们可以定义一个变量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;}
};

字符串经典题之大数相加相关推荐

  1. 字符串经典题之正则匹配字符串

    题目 字符串通配符 注意 此题和LeetCode 10:正则表达式匹配这道题虽然看着一样,但是本质不一样.力扣上的这道题,对于*匹配的是它前面的0个或多个,是单个字符,而牛客的这道题*匹配任意字符串多 ...

  2. 字符串经典题之参数解析

    题目 参数解析(点击跳转) 这道题并不慢,主要是一些细节得注意.尤其是第三个参数和第四个参数可能会出现引号,所以在大的情况下得把遇到引号和不是引号的情况分开来讨论.我们建立一个临时变量temp,它用来 ...

  3. 字符串经典题之扑克牌的大小

    题目 这种类型的题目不涉及算法,和我们日常的业务逻辑十分相似.最关键的一点就是思维清晰,逐步细化. 比较的时候首先比较类型,如果两副牌的数目相同,那么肯定是相同类型的,在这种情况下再去比较点数,而比较 ...

  4. zcmu-1181(大数相加)

    1181: a+b(不同于第一题) Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 920  Solved: 303 [Submit][Status] ...

  5. 大数系列之大数相加(ACM通过)(一)

    大数相加 概述:本题主要解决HDU 1002的大数相加问题并且成功AC 主要思路 1:定义两个字符数组和两个int型数组,输入字符串数组 2:将两个字符数组的长度用'0'补到一样长 3:倒着存入int ...

  6. 牛客题霸 [ 大数加法]C++题解/答案

    牛客题霸 [ 大数加法]C++题解/答案 题解: 本质就是模拟加法运算 想要让s与t长度统一,不足的部分用0来补充 然后从最后一位开始,两个数相加,同时如果超过10,就把多的部分加到下一位 其实就是我 ...

  7. javascript乘法和加法_JavaScript大数相加相乘的实现方法实例

    前言 JavaScript 中的最大安全整数是 2 ^{53} – 1 ,即 9007199254740991,当我们进行超出这个范围的数值计算的时候就无法得到精确的值,而是一个近似值,比如我们计算 ...

  8. 大数相乘、大数相加、大数相减Java版本

    为什么80%的码农都做不了架构师?>>>    题目:两个非常大的数字相乘(相加,相减) 该题目在java中可以使用BigInteger类中的方法来实现.否则的话可以使用如下方式来实 ...

  9. python进行两个大数相加

    python进行两个大数相加:由于int类型32位或64位都有长度限制,超出会内存溢出,无法计算,那么解决方法如下: 思路: 1.将超长数转换成字符串 2.进行长度补零,即让两个要计算的字符串长度一样 ...

最新文章

  1. 二叉树(构造与遍历方法)
  2. Viber4android,Viber更新4.0 推出全新贴纸市场,并支持安卓平板
  3. 重磅:2020 Gitee 开源年报发布!
  4. python考试题库 pcap_使用Python修改PCAP
  5. Android模拟器(包括Genymotion)访问本机服务器
  6. java8 :: 用法 (JDK8 双冒号用法)
  7. haproxy负载均衡_使用haproxy搭建web集群
  8. linux的sh文件怎么执行,linux下执行sh文件的四种做法
  9. 解决Tocmat6.x的catalina.out日志不断增加问题
  10. 一次数据库优化的对话
  11. spring @POSTConstruction注解的作用
  12. ADT(abstract data types)抽象数据类型
  13. scala教程(二) 函数
  14. NTC热敏电阻温度计算以及C语言实现
  15. Minpro-I编程器的驱动安装
  16. Win10环境下ubuntu安装教程
  17. openstack项目_新项目,安全性以及更多OpenStack新闻
  18. linux中磁盘阵列说明,常用磁盘阵列说明
  19. linux开发之deamon的写法
  20. 百度快速排名关键词点击软件

热门文章

  1. mysql可以使用mybaties框架吗_搭建一个简单的mybatis框架
  2. 傻子坐飞机问题的求解
  3. 吴恩达机器学习笔记四之正则化
  4. “过午不食”实锤了!协和医院最新研究:每天6:00-15:00进食,其它时间不吃饭!...
  5. 这一路,信念很简单,把书念下去,然后走出去,不枉活一世
  6. Mac如何快速导出保存Pages文档里的图片
  7. Audacity Mac版教程,使用Audacity编辑音频波形图的方法步骤
  8. python 表示图论_Python 图论工具 | 学步园
  9. if函数python作用_if __name__== __main__ 的意思(作用)python代码复用
  10. phpexcel的使用方法详细介绍