给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

注意:

num1 和num2 的长度都小于 5100.

num1 和num2 都只包含数字 0-9.

num1 和num2 都不包含任何前导零。

你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。

java 基础版

class Solution {
public String addStrings(String num1, String num2) {
String res = "";
int s1c = num1.length();
int s2c = num2.length();
if(s1c>=s2c) {
int diff = s1c-s2c;
String temp = "";
for(int i=0;i<diff;i++) {
temp += "0";
}
num2 = temp+num2;
char[] cs1 = num1.toCharArray();
char[] cs2 = num2.toCharArray();
int flag=0;
for(int i = cs1.length-1;i>=0;i--) {
System.out.println((cs1[i]-48+cs2[i]-48+flag));
if(flag+cs1[i]-48+cs2[i]-48>=10) {
res = (flag+cs1[i]-48+cs2[i]-48-10) + res;
flag=1;
}else {
res = (flag+cs1[i]-48+cs2[i]-48) + res;
flag=0;
}
}
if(flag == 1 ) {
res = 1+res;
}
}else {
int diff = s2c-s1c;
String temp = "";
for(int i=0;i<diff;i++) {
temp += "0";
}
num1 = temp+num1;
char[] cs1 = num1.toCharArray();
char[] cs2 = num2.toCharArray();
int flag=0;
for(int i = cs1.length-1;i>=0;i--) {
System.out.println((cs1[i]-48+cs2[i]-48+flag));
if(flag+cs1[i]-48+cs2[i]-48>=10) {
res = (flag+cs1[i]-48+cs2[i]-48-10) + res;
flag=1;
}else {
res = (flag+cs1[i]-48+cs2[i]-48) + res;
flag=0;
}
}
if(flag == 1 ) {
res = 1+res;
}
}
return res;
}
}

java 升级版

字符串加法、链表加法、二进制加法 都可以如此做

class Solution {
public String addStrings(String num1, String num2) {
StringBuilder build = new StringBuilder();
int s1c = num1.length()-1;
int s2c = num2.length()-1;
int carry = 0; //进位
while(s1c>=0 || s2c>=0 || carry !=0) {
if(s1c>=0) {
carry += num1.charAt(s1c--)-'0';
}
if(s2c>=0) {
carry += num2.charAt(s2c--)-'0';
}
build.append(carry%10); //各位数字
carry /=10; // 进位数字
} return build.reverse().toString();
}
}

运行结果

力扣(LeetCode)415. 字符串相加的更多相关文章

  1. Java实现 LeetCode 415 字符串相加

    415. 字符串相加 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num ...

  2. [LeetCode]415. 字符串相加、43. 字符串相乘

    题目 415. 字符串相加 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 题解 维护一个temp表示当前两数相加+上一个进位的和. 每次更新结果的一位. 注意终止条件. 最后将 ...

  3. 力扣Leetcode 179. 最大数 EOJ 和你在一起 字符串拼接 组成最大数

    最大数 力扣 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说 ...

  4. LeetCode:字符串相加【415】

    LeetCode:字符串相加[415] 题目描述 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意: num1 和num2 的长度都小于 5100.num1 和num2 都只 ...

  5. 力扣Leetcode 45. 跳跃游戏 II - 贪心思想

    这题是 55.跳跃游戏的升级版 力扣Leetcode 55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃 ...

  6. 刷题-力扣-541. 反转字符串 II

    541. 反转字符串 II 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-string-ii 著作权归领扣网络所有. ...

  7. 【力扣leetcode】-787. K站中转内最便宜的航班

    题目描述: 有 n 个城市通过一些航班连接.给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始,以价格 p ...

  8. 力扣Leetcode 面试题56 - I. 数组中数字出现的次数

    面试题56 - I. 数组中数字出现的次数 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次.请写程序找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度是O(1). 示例 ...

  9. 领扣(LeetCode)字符串相加 个人题解

    给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包 ...

随机推荐

  1. right spindle supply short to gnd

    hardware guy found that the R1004 lead to this error, but this error should not be checked, because ...

  2. 树莓派安装cobbler,自动化安装CentOS

    安装python.相关python模块.apache sudo apt-get install python python2.7 python-django python-netaddr python ...

  3. Docker 微服务教程

    Docker 是一个容器工具,提供虚拟环境.很多人认为,它改变了我们对软件的认识. 站在 Docker 的角度,软件就是容器的组合:业务逻辑容器.数据库容器.储存容器.队列容器......Docker ...

  4. Windows环境下ELK平台的搭建

    .背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采 ...

  5. 【题解】Luogu P2572 [SCOI2010]序列操作

    原题传送门:P2572 [SCOI2010]序列操作 这题好弱智啊 裸的珂朵莉树 前置芝士:珂朵莉树 窝博客里对珂朵莉树的介绍 没什么好说的自己看看吧 操作1:把区间内所有数推平成0,珂朵莉树基本操作 ...

  6. 04: nginx部署vue

    1.1 基本配置 server { listen 9000; server_name 1.1.1.3; #access_log logs/access_example.log main; root / ...

  7. LVS+Keepalived+Mysql+主主数据库架构[2台]

    架构图 安装步骤省略. 158.140 keepalived.conf ! Configuration File for keepalived global_defs { #全局标识模块 notifi ...

  8. 集合框架-ArrayList,Vector,Linkedlist

    // ClassCastException 报错,注意,千万要搞清楚类型 * Vector的特有功能: * 1:添加功能 * public void addElement(Object obj) -- ...

  9. Python3基础 e记法示例

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  10. tp剩余未验证内容-5

    经过实践, ie678是不能正确显示解析bs的,所以要用ff和chrome浏览器. page-header类是有特殊样式的 在标题下有一条浅色的细线条,源代码中有: border-bottom: 1p ...