LeetCode:字符串相加【415】
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();
}
LeetCode:字符串相加【415】的更多相关文章
- Java实现 LeetCode 415 字符串相加
415. 字符串相加 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num ...
- [LeetCode]415. 字符串相加、43. 字符串相乘
题目 415. 字符串相加 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 题解 维护一个temp表示当前两数相加+上一个进位的和. 每次更新结果的一位. 注意终止条件. 最后将 ...
- LeetCode - 字符串数字相乘与相加
43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2& ...
- 代码题(59)— 字符串相加、字符串相乘、打印最大n位数
1.415. 字符串相加 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 思路:和链表相加类似,求进位. class Solution { public: string addS ...
- T-SQL字符串相加之后被截断的那点事
本文出处:http://www.cnblogs.com/wy123/p/6217772.html 字符串自身相加, 虽然赋值给了varchar(max)类型的变量,在某些特殊情况下仍然会被“截断”,这 ...
- C语言关于利用sscanf实现字符串相加减
#include<stdio.h>#include<string.h>void main(){ int a; int b; char str1[10] = "9999 ...
- 【转】String字符串相加的问题
String字符串相加的问题 前几天同事跟我说我之前写的代码中在操作字符串时候,使用字符串相加的方式而不是使用StringBuffer或者StringBuilder导致内存开销很大.这个问题一直在困扰 ...
- LeetCode 字符串专题(一)
目录 LeetCode 字符串专题 <c++> \([5]\) Longest Palindromic Substring \([28]\) Implement strStr() [\(4 ...
- String 字符串相加比较
String 字符串相加 对比 public static void main(String[] args) { String a = "helloword"; final Str ...
随机推荐
- Python爬虫入门——使用requests爬取python岗位招聘数据
爬虫目的 使用requests库和BeautifulSoup4库来爬取拉勾网Python相关岗位数据 爬虫工具 使用Requests库发送http请求,然后用BeautifulSoup库解析HTML文 ...
- mybatis自动生成model、dao及对应的mapper.xml文件
背景: 日常开发中,如果新建表,手动敲写model.dao和对应的mapper.xml文件,费时费力且容易出错, 所以采用mybatis自动生成model.dao及对应的mapper.xml文件.代码 ...
- 又一款dump文件观察工具---MiniDumpView
简介 MiniDumpView实用程序可用于显示minidump中数据流的内容.特别是,可以显示以下信息: 操作系统和CPU信息 进程信息(进程ID和时间) 模块列表(包含每个模块的详细信息) 线程列 ...
- Lightning Web Components 组件样式(四)
要将样式与组件进行绑定,需要创建一个同名的样式文件,这样样式将会自动应用到组件 在组件中定义的样式的作用域是属于组件的,这样允许组件可以在不同的上下文中可以复用, 可以阻止其他组件的样式的复写 css ...
- CF1098E Fedya the Potter
CF1098E Fedya the Potter 题意:有一个序列\(A\). 对所有\(1\leq l\leq r\leq |A|\),将\(\gcd_{i=l}^{r}A_i\)加入\(B\)中. ...
- JavaScript中字符串多行编辑
常用写法: var str = 'w3c' +'标准' +'方式.' 升级版:var str = ['w3c','标准','方式.'].join('');终极版:var str = 'w3c\标准\方 ...
- TypeScript规则整理
介绍我在初学 TS 开发项目中遇到的一些问题,希望对你有所帮助~ 因为我们的JavaScript是弱类型语言,如果项目过大,或者团队人数很多,不仅代码风格不统一,以后还会很难维护 Ty ...
- Linux环境下Nexus3.6安装
1. 安装JDK 2. 下载nexus开源版本即可,Nexus OSS下载 流程 3. 解压文件,会的得到两个文件夹[nexus-3.6.0]和[sonatype-work] tar -zxv ...
- Python3爬取王者官方网站英雄数据
爬取王者官方网站英雄数据 众所周知,王者荣耀已经成为众多人们喜爱的一款休闲娱乐手游,今天就利用python3 爬虫技术爬取官方网站上的几十个英雄的资料,包括官方给出的人物定位,英雄名称,技能名称,CD ...
- Service Function Chaining Resource Allocation: A Survey
摘要: 服务功能链(SFC)是未来Internet的一项关键技术. 它旨在克服当前部署模型的僵化和静态限制. 该技术的应用依赖于可以将SFC最佳映射到衬底网络的算法. 这类算法称为"服务功能 ...