LeetCode:字符串相加【415】

题目描述

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

注意:

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

题目分析

  这道题其实很简单,我们要搞清楚手工计算两数之和的流程。两数相加,和如果大于10的话就有进位,进位最高为1,默认为0,该位相加的和应为sum%10

  小学数学题哦,不多解释了!

Java题解

    public static String addStrings(String num1, String num2) {
int ptrNum1 = num1.length()-1 ;
int ptrNum2 = num2.length()-1 ;
int count = 0;
StringBuilder result = new StringBuilder();
//1、从两数个位开始相加
while(ptrNum1>=0&&ptrNum2>=0){
//[a、换算成数字]
int a = num1.charAt(ptrNum1)-'0';
int b = num2.charAt(ptrNum2)-'0';
//[b、计算位数之和,包含进位count]
int sum = a+b+count;
count = 0;
//[c、如果和大于9,则有新进位]
if(sum>9){
count =1;
sum-=10;
}
//[d、将处理后sum插入结果]
result.insert(0,sum);
ptrNum1--;
ptrNum2--;
}
//2、假如数字1还有高位未相加
while(ptrNum1>=0){
//[a、仅仅与进位值相加]
int a =num1.charAt(ptrNum1)-'0'+count;
count = 0;
if(a>=10){
count =1;
a-=10;
}
//[b、将处理后sum插入结果]
result.insert(0,a);
ptrNum1--;
}
//3、加入数字2还有高位未相加
while(ptrNum2>=0){
int a =num2.charAt(ptrNum2)-'0'+count;
count = 0;
if(a>10){
count =1;
a-=10;
}
result.insert(0,a);
ptrNum2--;
}
//4、考虑最高位进位的情况
if(count==1)
result.append("1");
return result.toString();
}

  

最新文章

  1. linux终端常用快捷键
  2. System.Web.HttpContext.Current.Server.MapPath("~/upload/SH") 未将对象引用设置为实例对象
  3. C# window service的创建
  4. 安卓蓝牙技术Bluetooth使用流程(Bluetooth详解)
  5. Python Udp Socket
  6. UESTC 75 The Queen's New Necklaces
  7. [读书笔记]telnet与http服务器一次直接对话
  8. 动作Action
  9. css简单实现火焰效果
  10. 多表连接的三种方式 HASH MERGE NESTED
  11. SSM-SpringMVC-01:SpringMVC是什么?SpringMVC执行流程
  12. mysql5.7连接不上可能的问题(针对新安装的mysql5.7可能出现的问题)
  13. 【linux】之查看磁盘占用情况
  14. OO第二单元单元总结
  15. Duplicate entry '0' for key 'PRIMARY'
  16. 【BZOJ5292】[BJOI2018]治疗之雨(高斯消元)
  17. ZOJ 4062 Plants vs. Zombies(二分答案)
  18. oracle_基本SQL语言
  19. C. cltt的幸运数LCAtarjan
  20. 用R语言实现对不平衡数据的四种处理方法

热门文章

  1. Qualification Rounds(Codeforces Round #438 by Sberbank and Barcelona Bootcamp (Div. 1 + Div. 2 combined)+状态压缩)
  2. 微信小程序~模板template引用
  3. 实验八 《Coderxiaoban团队》团队作业4:基于原型的团队项目需求调研与分析
  4. 检测并修改linux服务器日期
  5. 使用postman开发testcases记录贴
  6. Python 生成 JWT(json web token) 及 解析方式
  7. Django ContentTypes框架使用场景
  8. LeetCode 708. Insert into a Cyclic Sorted List
  9. Centos7配置静态网卡
  10. centos7最小化安装无法tab补全