题目描述:

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

注意:

num1 和num2 的长度都小于 5100.

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

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

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

解题思路:

先把两个字符串反转,然后变成相同长度(在短的字符串后面加 ”0“)。

从左到右给两个统一字符串上的字符求和(先变成整数,再求和)。创建一个int变量,存放求和后需要进位的数。

求和后的数字,减去10,然后存放在一个新字符串中。

反转新字符串,并返回该字符串。

代码实现:

class Solution {

public String addStrings(String num1, String num2) {

if (num1 == null || num1.equals("0")) {

return num2;

}else if (num2 == null || num2.equals("0")) {

return num1;

}

StringBuffer s1 = new StringBuffer(num1);

StringBuffer s2 = new StringBuffer(num2);

s1.reverse();

s2.reverse();

if (s1.length() > s2.length()) {

for (int i = s2.length(); i < s1.length(); i++) {

s2.append("0");

}

}else if (s1.length() < s2.length()) {

for (int i = s1.length(); i < s2.length(); i++) {

s1.append("0");

}

}

int flag = 0;

StringBuffer str = new StringBuffer("");

for (int i = 0; i < s1.length(); i++) {

int value1 = s1.charAt(i) - '0';

int value2 = s2.charAt(i) - '0';

int value = flag + value1 + value2;

if (value >= 10) {

flag = 1;

value = value - 10;

str.append(value);

}else {

str.append(value);

flag = 0;

}

}

if (flag != 0) {

str.append(flag);

}

str.reverse();

return str.toString();

}

}

字符串相加 java_字符串相加-LeetCode(Java实现)相关推荐

  1. 编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个函数分别实现这两个字符串的拼接、整数相加和浮点数相加。要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。

    编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个函数分别实现这两个字符串的拼接.整数相加和浮点数相加.要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃. pack ...

  2. JAVA字符串常量和变量相加问题

    字符串变量相加:先开空间(产生地址值),在相加,还需要判断当前相加后的结果在常量是否存在  *   * 字符串常来你相加:先相加,然后在常量池中是否存在该常量,如果存在,直接返回地址值::如果不存在再 ...

  3. C++二进制数字相加用字符串返回的算法实现(附完整源码)

    C++二进制数字相加用字符串返回的算法实现 C++w二进制数字相加用字符串返回的算法实现完整源码(定义,实现,main函数测试) C++w二进制数字相加用字符串返回的算法实现完整源码(定义,实现,ma ...

  4. Java案例——统计字符串中每个字符串出现的次数

    统计字符串中每个字符串出现的次数 需求: 1.键盘录入一个字符串,要求统计字符串中每个字符串出现的次数 举例:键盘录入"aababcabcdabcde" 在控制台输出:" ...

  5. java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法...

    1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...

  6. 【Android NDK 开发】JNI 方法解析 ( 字符串数组参数传递 | 字符串遍历 | 类型强转 | Java 字符串与 C 字符串转换 | 字符串释放 )

    文章目录 I . C/C++ 中的 Java 字符串数组类型 II . 获取字符串数组长度 III . 获取字符串数组元素 IV . 类型强转 ( jobject -> jstring ) V ...

  7. LeetCode算法题2:求字符串b在字符串a中的起始下标

    文章目录 前言 一.题目描述 二.思路 1.朴素匹配 1.1Java直接实现 2.kmp模式匹配 总结 前言 本系列文章为leetCode刷题笔记,仅供参考. 一.题目描述 若字符串 a 包含字符串 ...

  8. 【Java】字符串转Unicode字符串

    前言 jdk1.8 字符串转Unicode字符串 字符串:{"name":"类别"} 转Unicode字符串:{"name":"\ ...

  9. java创建一个程序把输入字符串的大小写互换_8 编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转...

    package com.test; import java.util.Scanner; /** * 8 编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大 ...

最新文章

  1. hdu - 4707 - Pet
  2. 一条龙奇迹私服WEB系统后门及bug
  3. AjaxControlToolkit HoverMenuExtender 控件演示
  4. React Native获取手机的各种高度
  5. 获取keras中间层输出、模型保存与加载
  6. [LeetCode] Permutations 解题报告
  7. php业务网站资源网,企业创意业务网站模板
  8. 使用密钥加密码加密_创建基于密码的加密密钥
  9. linux 进程通信子mmap
  10. 关于glusterfs-3.0.4中AFR修复的一个bug
  11. 微信小程序------开发测试
  12. cass小插件集合_CAD面积插件大全_CAD插件大全_CASS插件大全_小懒人CAD插件老妈砂锅串串香加盟...
  13. 支付宝手机网站支付详细流程
  14. STM32HAL库微秒延时函数的实现---DWT和SysTick
  15. 【Pytorch实战4】基于CIFAR10数据集训练一个分类器
  16. 网络爬虫——中国大学排名数据抓取
  17. oracle 怎么看监听文件,【学习笔记】Oracle11G关于监听文件位置与监听文件大小限制...
  18. IDM All Products全系列破解UltraEditUltraCompareUEStudioUltraFTPUltraFinder全部最新版产品破解补丁及注册机补丁破解
  19. 智慧矿山无人驾驶模块
  20. python3.6实现Softmax Regression测试训练模型(可视化)机器学习算法(赵志勇)学习笔记

热门文章

  1. 大剑无锋之Kafka的Patition的作用【面试推荐】
  2. 关于MySQL使用Float存储时的精度问题
  3. C++ 静态链表(用数组模拟动态链表)
  4. Pandas高级教程之:GroupBy用法
  5. JavaScript的运动——加速运动篇
  6. 【解题报告】Leecode 372. 超级次方——Leecode每日一题系列
  7. Leecode 1218. 最长定差子序列——Leecode每日一题系列
  8. 5行代码满分——L1-060 心理阴影面积 (5分)
  9. 【超全解析】原码、反码、补码、移码的相互转化和解读(取值范围)
  10. 家用电脑配置_家用电脑无需太高配置,不要听电脑店瞎忽悠,2500元机子够用了!...