字符串相加 java_字符串相加-LeetCode(Java实现)
题目描述:
给定两个字符串形式的非负整数 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实现)相关推荐
- 编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个函数分别实现这两个字符串的拼接、整数相加和浮点数相加。要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。
编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个函数分别实现这两个字符串的拼接.整数相加和浮点数相加.要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃. pack ...
- JAVA字符串常量和变量相加问题
字符串变量相加:先开空间(产生地址值),在相加,还需要判断当前相加后的结果在常量是否存在 * * 字符串常来你相加:先相加,然后在常量池中是否存在该常量,如果存在,直接返回地址值::如果不存在再 ...
- C++二进制数字相加用字符串返回的算法实现(附完整源码)
C++二进制数字相加用字符串返回的算法实现 C++w二进制数字相加用字符串返回的算法实现完整源码(定义,实现,main函数测试) C++w二进制数字相加用字符串返回的算法实现完整源码(定义,实现,ma ...
- Java案例——统计字符串中每个字符串出现的次数
统计字符串中每个字符串出现的次数 需求: 1.键盘录入一个字符串,要求统计字符串中每个字符串出现的次数 举例:键盘录入"aababcabcdabcde" 在控制台输出:" ...
- java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法...
1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...
- 【Android NDK 开发】JNI 方法解析 ( 字符串数组参数传递 | 字符串遍历 | 类型强转 | Java 字符串与 C 字符串转换 | 字符串释放 )
文章目录 I . C/C++ 中的 Java 字符串数组类型 II . 获取字符串数组长度 III . 获取字符串数组元素 IV . 类型强转 ( jobject -> jstring ) V ...
- LeetCode算法题2:求字符串b在字符串a中的起始下标
文章目录 前言 一.题目描述 二.思路 1.朴素匹配 1.1Java直接实现 2.kmp模式匹配 总结 前言 本系列文章为leetCode刷题笔记,仅供参考. 一.题目描述 若字符串 a 包含字符串 ...
- 【Java】字符串转Unicode字符串
前言 jdk1.8 字符串转Unicode字符串 字符串:{"name":"类别"} 转Unicode字符串:{"name":"\ ...
- java创建一个程序把输入字符串的大小写互换_8 编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转...
package com.test; import java.util.Scanner; /** * 8 编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大 ...
最新文章
- hdu - 4707 - Pet
- 一条龙奇迹私服WEB系统后门及bug
- AjaxControlToolkit HoverMenuExtender 控件演示
- React Native获取手机的各种高度
- 获取keras中间层输出、模型保存与加载
- [LeetCode] Permutations 解题报告
- php业务网站资源网,企业创意业务网站模板
- 使用密钥加密码加密_创建基于密码的加密密钥
- linux 进程通信子mmap
- 关于glusterfs-3.0.4中AFR修复的一个bug
- 微信小程序------开发测试
- cass小插件集合_CAD面积插件大全_CAD插件大全_CASS插件大全_小懒人CAD插件老妈砂锅串串香加盟...
- 支付宝手机网站支付详细流程
- STM32HAL库微秒延时函数的实现---DWT和SysTick
- 【Pytorch实战4】基于CIFAR10数据集训练一个分类器
- 网络爬虫——中国大学排名数据抓取
- oracle 怎么看监听文件,【学习笔记】Oracle11G关于监听文件位置与监听文件大小限制...
- IDM All Products全系列破解UltraEditUltraCompareUEStudioUltraFTPUltraFinder全部最新版产品破解补丁及注册机补丁破解
- 智慧矿山无人驾驶模块
- python3.6实现Softmax Regression测试训练模型(可视化)机器学习算法(赵志勇)学习笔记
热门文章
- 大剑无锋之Kafka的Patition的作用【面试推荐】
- 关于MySQL使用Float存储时的精度问题
- C++ 静态链表(用数组模拟动态链表)
- Pandas高级教程之:GroupBy用法
- JavaScript的运动——加速运动篇
- 【解题报告】Leecode 372. 超级次方——Leecode每日一题系列
- Leecode 1218. 最长定差子序列——Leecode每日一题系列
- 5行代码满分——L1-060 心理阴影面积 (5分)
- 【超全解析】原码、反码、补码、移码的相互转化和解读(取值范围)
- 家用电脑配置_家用电脑无需太高配置,不要听电脑店瞎忽悠,2500元机子够用了!...