当前位置:网站首页>offer收割机:两个长字符串数字相加求和(经典面试算法题)
offer收割机:两个长字符串数字相加求和(经典面试算法题)
2022-07-07 05:02:00 【不凡~】
在面试中,为了缓解面试的尴尬,有些面试会然你写一写简单算法题来缓解气氛比如冒泡啊简单的算法题,今天给大家带了一道我遇到的一道算法题分享给他就,思路都写在对应代码的注释上,不懂可以看一下,有什么写的不对的大家可以指出来上代码
package com.interview;
import com.sun.javafx.image.BytePixelSetter;
public class Test2 {
public static void main(String[] args) {
String str1 = "568658123123312123123123123123131233132123123123131231233123131231231231231";
String str2 = "132121231231231312312312312312312312312312312312313123123101";
//reverse()方法是将字符串反转。
//StringBuffer类是一个可变字符串类,它可以用来存储字符串。
StringBuffer s1 = new StringBuffer(str1).reverse();
StringBuffer s2 = new StringBuffer(str2).reverse();
StringBuffer res = new StringBuffer();
int len1 = s1.length();
int len2 = s2.length();
int len;
//如果两个字符串长度不一样,则取长度较大的那个字符串的长度。
if (len1 < len2) {
//意思是:如果len1<len2,则len=len2,否则len=len1。
len = len2;
//用len2-len1的值来填充len1的空位。
int count = len2 - len1;
//将长度较小的字符串补全为长度较大的字符串的长度。
while (count-- > 0)
//对那个空位进行填充。追加
s1.append("0");
} else {
//如果两个字符串长度一样,则取长度较大的那个字符串的长度。
len = len1;
//用len1-len2的值来填充len2的空位。
int count = len1 - len2;
//将长度较小的字符串补全为长度较大的字符串的长度。
while (count-- > 0)
s2.append("0");
}
int overflow = 0;
int num;
//遍历两个字符串的每一个字符,将两个字符相加。
for (int i = 0; i < len; i++) {
//charAt()方法是返回指定索引处的字符。
//num是字符串的ASCII码值。
num = s1.charAt(i) - '0' + s2.charAt(i) - '0' + overflow;
//如果相加后的数字大于9,则将相加后的数字减去10,并将overflow设置为1。
if (num >= 10) {
//将相加后的数字减去10。
overflow = 1;
//将相加后的数字转换为字符。
num = num - 10;
} else {
//如果相加后的数字小于10,则将overflow设置为0。
overflow = 0;
}
//将相加后的数字转换为字符。
res.append(String.valueOf(num));
}
//如果相加后的数字大于9,则将相加后的数字减去10,并将overflow设置为1。
if (overflow == 1)
//将相加后的数字转换为字符。
res.append("1");
//将结果转换为字符串。
System.out.println(res.reverse().toString());
}
}
这是主要思路是通过反转来求和
边栏推荐
- json 数据展平pd.json_normalize
- 基于Pytorch 框架手动完成线性回归
- 青龙面板-今日头条
- OpenJudge NOI 2.1 1752:鸡兔同笼
- 复杂网络建模(三)
- Empire CMS collection Empire template program general
- C语言二叉树与建堆
- Linux Installation MySQL 8.0 configuration
- These five fishing artifacts are too hot! Programmer: I know, delete it quickly!
- [UVM foundation] what is transaction
猜你喜欢
Implementation of replacement function of shell script
王爽 《汇编语言》之寄存器
[matlab] when matrix multiplication in Simulink user-defined function does not work properly, matrix multiplication module in module library can be used instead
【數字IC驗證快速入門】15、SystemVerilog學習之基本語法2(操作符、類型轉換、循環、Task/Function...內含實踐練習)
2022年茶艺师(中级)考试试题及模拟考试
buureservewp(2)
Dedecms collects content without writing rules
LeetCode简单题之字符串中最大的 3 位相同数字
Li Kou interview question 04.01 Path between nodes
Wechat applet data binding multiple data
随机推荐
Network learning (III) -- highly concurrent socket programming (epoll)
C language queue
2022 simulated examination question bank and online simulated examination of tea master (primary) examination questions
C语言二叉树与建堆
力扣(LeetCode)187. 重复的DNA序列(2022.07.06)
dash plotly
Qt学习28 主窗口中的工具栏
The principle and implementation of buffer playback of large video files
Content of string
贝叶斯定律
Leanote private cloud note building
Paddlepaddle 29 dynamically modify the network structure without model definition code (relu changes to prelu, conv2d changes to conv3d, 2D semantic segmentation model changes to 3D semantic segmentat
Bugku CTF daily one question chessboard with only black chess
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after conne
Few shot Learning & meta learning: small sample learning principle and Siamese network structure (I)
青龙面板--整理能用脚本
2022 tea master (intermediate) examination questions and mock examination
Linux server development, MySQL cache strategy
Numbers that appear only once
2022 Inner Mongolia latest advanced fire facility operator simulation examination question bank and answers