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 ...
随机推荐
- 分析和研究Monkey Log文件
Log 在Android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处理log文件 . 什么时候会有Log文件的产生 ...
- 一行代码搞定WordPress面包屑导航breadcrumb
有好几位网友在问WordPress面包屑导航breadcrumb怎么操作,网上有些教程是去function文件中定义,其实不用那么复杂,很简单一行代码就能搞定.下面随ytkah一起来看看.如果是单页, ...
- Making Huge Palindromes LightOJ - 1258
题目链接:LightOJ - 1258 1258 - Making Huge Palindromes PDF (English) Statistics Forum Time Limit: 1 se ...
- Evaluation of fast-convergence algorithm for ICA-based blind source separation of real convolutive mixture
实际卷积混合情况下,基于ICA的盲源分离算法快速收敛性能评估[1]. 提出了一种新的盲源分离算法,该算法将独立分量分析ICA和波束形成BF相结合,通过优化算法来解决盲源分离的低收敛问题.该方法由以下三 ...
- lxml 和 pyquery 示例 爬 卡牌
import requests from pyquery import PyQuery as pq import json import jsonpath from lxml import etree ...
- HBase 基本入门篇
无论是 NoSQL,还是大数据领域,HBase 都是非常”炙热”的一门数据库.本文将对 HBase 做一些基础性的介绍,旨在入门. 一.简介 HBase 是一个开源的.面向列的非关系型分布式数据库,目 ...
- BZOJ 3166: [Heoi2013]Alo 链表+可持久化trie
链表这个东西非常好用啊 ~ code: #include <bits/stdc++.h> #define N 50010 #define inf 2000400000 #define se ...
- Connection to newtaotao failed. [08001] Could not create connection to database
jdbc.url=jdbc:mysql://localhost:3306/newtaotao?serverTimezone=UTC&characterEncoding=utf-8 数据库是5. ...
- centos硬件查询
1.cpu个数: [root@localhost ~]# cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -lcpu核心数: ...
- SqlServer 数据库同步的两种方式 (发布、订阅),主从数据库之间的同步
最近在琢磨主从数据库之间的同步,公司正好也需要,在园子里找了一下,看到这篇博文比较详细,比较简单,本人亲自按步骤来过,现在分享给大家. 在这里要提醒大家的是(为了更好的理解,以下是本人自己理解,如有错 ...