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 ...
随机推荐
- moviepy草码
第一下. # coding=utf-8 from moviepy.editor import * from moviepy.video.tools.subtitles import Subtitles ...
- 51nod 1053 最大M子段和 V2
N个整数组成的序列a[1],a[2],a[3],…,a[n],将这N个数划分为互不相交的M个子段,并且这M个子段的和是最大的.如果M >= N个数中正数的个数,那么输出所有正数的和. 例如:-2 ...
- js function 参数
JS 中 函数的调用非常完美, 例如 var myFun=function( num1,num2){ return num1+num2;} 调用喊出 1) myFun(1,1) 2) myFun(); ...
- 004——转载—Word2016“此功能看似已中断 并需要修复”问题解决办法
解决办法如下: 在Win10系统上安装 Office 2016 之后,每次打开Word文档可能都会提示“很抱歉,此功能看似已中断,并需要修复,请使用Windows 控制面板中的“程序和功能”选项修复M ...
- HBASE-LSM树(转载)
HBASE-LSM树 1.B+树 关于B树.B+树.B树的了解参考:* http://blog.csdn.net/v_july_v/article/details/6530142 优点: 走进搜索引擎 ...
- 17-ESP8266 SDK开发基础入门篇--TCP服务器 RTOS版,小试牛刀
https://www.cnblogs.com/yangfengwu/p/11105466.html 现在开始写... lwip即可以用socket 的API 也可以用 netconn 的API实 ...
- 机器学习---逻辑回归(二)(Machine Learning Logistic Regression II)
在<机器学习---逻辑回归(一)(Machine Learning Logistic Regression I)>一文中,我们讨论了如何用逻辑回归解决二分类问题以及逻辑回归算法的本质.现在 ...
- 洛谷 P3380 【模板】二逼平衡树(树套树)-线段树套splay
P3380 [模板]二逼平衡树(树套树) 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 查询k在区间内的排名 查询区间内排名为k的值 修改某一位值上的数 ...
- MongoDB 关系型数据库表(集合)与表(集合)之间的几种关系
简述关系数据库中表与表的 3 种关系 一对一的关系:例如:一个人对应一个唯一的身份证号,即为一对一的关系. 一对多关系 :例如:一个班级对应多名学生,一个学生只能属于一个班级,即为一对多关系 多对多关 ...
- Node Addon
Node Addon as bridge between javascript and C++ #include <node.h> namespace HelloWorldDemo { u ...