LeetCode:字符串相加【415】
2024-09-20 06:24:59
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();
}
最新文章
- linux终端常用快捷键
- System.Web.HttpContext.Current.Server.MapPath(";~/upload/SH";) 未将对象引用设置为实例对象
- C# window service的创建
- 安卓蓝牙技术Bluetooth使用流程(Bluetooth详解)
- Python Udp Socket
- UESTC 75 The Queen's New Necklaces
- [读书笔记]telnet与http服务器一次直接对话
- 动作Action
- css简单实现火焰效果
- 多表连接的三种方式 HASH MERGE NESTED
- SSM-SpringMVC-01:SpringMVC是什么?SpringMVC执行流程
- mysql5.7连接不上可能的问题(针对新安装的mysql5.7可能出现的问题)
- 【linux】之查看磁盘占用情况
- OO第二单元单元总结
- Duplicate entry '0' for key 'PRIMARY'
- 【BZOJ5292】[BJOI2018]治疗之雨(高斯消元)
- ZOJ 4062 Plants vs. Zombies(二分答案)
- oracle_基本SQL语言
- C. cltt的幸运数LCAtarjan
- 用R语言实现对不平衡数据的四种处理方法
热门文章
- Qualification Rounds(Codeforces Round #438 by Sberbank and Barcelona Bootcamp (Div. 1 + Div. 2 combined)+状态压缩)
- 微信小程序~模板template引用
- 实验八 《Coderxiaoban团队》团队作业4:基于原型的团队项目需求调研与分析
- 检测并修改linux服务器日期
- 使用postman开发testcases记录贴
- Python 生成 JWT(json web token) 及 解析方式
- Django ContentTypes框架使用场景
- LeetCode 708. Insert into a Cyclic Sorted List
- Centos7配置静态网卡
- centos7最小化安装无法tab补全