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 ...
随机推荐
- python2和python3切换
(1)需要将python2和python3的环境变量设置好 (2)重命名主程序 然后我们分别把两个版本的 Python 主程序 exe 改下名,3.6 版本的改名为 python3.exe,2.7 版 ...
- Kotlin函数使用综述与显式返回类型分析
位置参数与具名参数: 继续接着上一次https://www.cnblogs.com/webor2006/p/11498842.html的方法参数学习,再定义一个函数来说明具名参数的问题: 调用一下,先 ...
- git免密
免账号密码输入 git clone https://lichuanfa%40gitcloud.com.cn:lcf13870752164@git.c.citic/Citic-Data/bigdata_ ...
- 对当前目录下的所有APK包执行Monkey测试,并自动保存Crash日志
适用平台:Android,代码几个月前写的,有问题请及时回复.本代码会依次安装当前目录下的APK安装包,之后执行Monkey测试,然后卸载掉换下一个,继续重复执行,如出现Cransh,会自动保存在当前 ...
- js正则实现从一段复杂html代码字符串中匹配并处理特定信息
js正则实现从一段复杂html代码字符串中匹配并处理特定信息 问题: 现在要从一个复杂的html代码字符串(包含各种html标签,数字.中文等信息)中找到某一段特别的信息(被一对“|”包裹着),并对他 ...
- 关于mysql数据库utf-8问题
1.bug的出现 我们正常使用utf-8类型来给我们的字段的字符编码,对于正常的都没有问题,例如姓名呀,性别年龄等,但是会遇到一个问题就是如果存储表情emoji则无法存入utf-8编码的字段 2.my ...
- LeetCode 742. Closest Leaf in a Binary Tree
原题链接在这里:https://leetcode.com/problems/closest-leaf-in-a-binary-tree/ 题目: Given a binary tree where e ...
- navicat设置唯一
https://blog.csdn.net/Song_JiangTao/article/details/82192189
- 汇编语言中 cs, ds,ss 的区别
CS(Code Segment):代码段寄存器:DS(Data Segment):数据段寄存器:SS(Stack Segment):堆栈段寄存器:ES(Extra Segment):附加段寄存器.当一 ...
- bash循环得到日期目录
#!/bin/bash today=$(date "+%Y%m%d") echo 'today is :'${today} single_input="raw_data/ ...