当前位置: 首页 > news >正文

两个长整数字符串求和(不允许使用ES6+)

两个长整数字符串求和(不允许使用ES6+), 面试手撸代码遇到到这个问题

1. 实现方式第一种

// 短整数字符串前边补 '0'; num需要补 '0' 的短整数字符串, len 长整数字符串的长度  
function fillZero (num, len) {let str = num.toString();if (str.length < len) {str = '0'.repeat(len - str.length) + str;}return str;}// 处理相加大于等于10进制问题; num1, num2 两个长度一样的长整数字符串function handlerCarry (num1, num2) {let arr = []for (let i = 0; i < num1.length; i++) {arr.push(Number(num1[i]) + Number(num2[i]))}arr = arr.reverse()arr.forEach((item, index) => {// console.log(item)if (item >= 10) {arr[index] = item - 10arr[index + 1] = arr[index + 1] ? arr[index + 1] + 1 : 1}})// console.log(arr)return arr.reverse().join('')}// 处理两个长整数字符串相加后返回结果字符串; num1, num2 长度不一定相等的两个长整数字符串function longIntStrSum (num1, num2) {let str = ''let len1 = num1.length;let len2 = num2.length;if (len1 < len2) {num1 = fillZero(num1, len2)} else if (len1 > len2) {num2 = fillZero(num2, len1)}str = handlerCarry(num1, num2)return str}let num1 = '123412412'let num2 = '967354215'console.log(longIntStrSum(num1, num2))

2. 借鉴他人的代码实现两个长整数字符串相加

function sumStrings (a, b) {var result = [], count = 0;if (a.length < b.length) b = [a, a = b][0];b = Array(a.length - b.length + 1).join('0') + b;var arrA = a.split('');var arrB = b.split('');for (var j = 0; j < a.length; j++) {var temp = (Number(arrA.pop()) + Number(arrB.pop())) + count;temp >= 10 ? [temp, count] = [temp - 10, 1] : count = 0;result.push(temp);}result.push(count);return result.reverse().join('').replace(/^0+/, '');
}
let sum = sumStrings('1234', '456789')
console.log(sum) // 458023

相关文章:

两个长整数字符串求和(不允许使用ES6+)

两个长整数字符串求和(不允许使用ES6), 面试手撸代码遇到到这个问题 1. 实现方式第一种 // 短整数字符串前边补 0; num需要补 0 的短整数字符串, len 长整数字符串的长度 function fillZero (num, len) {let str num.toString();if (str.length < len) {str 0.repeat(…...

11 Java 方法引用、异常处理、Java接口之函数式编程(接口知识补充Function<T,R>、BiFunction<T, U, R>和自定义泛型接口)

文章目录 前言一、Java接口之函数式编程 --- 接口知识补充1 Function<T,R>泛型接口2 BiFunction<T, U, R>泛型接口3 自定义泛型函数式编程接口4 使用lambda表达式、方法引用进行函数式编程二、方法引用1 方法引用初体验(以Array.sort()方法为例)(1)什么是方法引…...

深入探索 Go 语言的编译器与垃圾回收机制

Go 编译器 Go 编译器是通过 go 工具执行的&#xff0c;这个工具的功能不仅仅是生成可执行文件。你可以使用 go tool compile 命令来编译一个 Go 源文件。这个操作将生成一个目标文件&#xff0c;也就是 .o 后缀的文件。以下是在 macOS Mojave 系统上执行的命令和结果展示&…...

2024国赛数学建模-模拟火算法(MATLAB 实现)

模拟退火算法 1.1 算法原理 模拟退火算法的基本思想是从一给定解开始 ,从邻域 中随机产生另一个解 ,接受 Metropolis准则允许目标函数在 有限范围内变坏 ,它由一控制参数 t决定 ,其作用类似于物 理过程中的温度 T,对于控制参数的每一取值 ,算法持续进 行“产生 —判断 —接受…...

YOLOv8 只检测人 只画框不要标签

参考了这个&#xff1a;YOLOv8只检测人&#xff08;或其他一种或者多种类别&#xff09;_yolov8只检测指定类别-CSDN博客 1. 只检测人&#xff1a;predict的时候指定参数classes[0] 2. 只画框不要标签&#xff1a;plot的时候传入labelsFalse 3. 标签中去掉置信度&#xff1a…...

如何将网络安全防范游戏化

组织对威胁的准备和恢复能力跟不上网络犯罪分子的进步。 一些首席执行官仍然认为网络安全需要偶尔干预&#xff0c;而不是持续关注。 但对于许多公司来说&#xff0c;情况并非如此&#xff1b;网络威胁准备需要协调一致的培训工作&#xff0c;因此网络安全团队在攻击发生时已…...

Qt QGraphicsView实现图片放缩、鼠标拖动移动、鼠标点位置放大缩小_图片查看

QtQGraphicsView实现图片放缩、鼠标拖动移动、鼠标点位置放大缩小 头文件&#xff1a; #ifndef TIMGWIDGET_H #define TIMGWIDGET_H#include <QGraphicsItem> #include <QMainWindow> #include <QObject> #include <QWidget>// class TImgWidget : pu…...

Percona Toolkit 神器全攻略(复制类)

Percona Toolkit 神器全攻略&#xff08;复制类&#xff09; Percona Toolkit 神器全攻略系列共八篇&#xff0c;前文回顾&#xff1a; 前文回顾Percona Toolkit 神器全攻略Percona Toolkit 神器全攻略&#xff08;实用类&#xff09;Percona Toolkit 神器全攻略&#xff08;配…...

SQLite3 数据类型深入全面讲解

SQLite3&#xff0c;作为一款轻量级的数据库管理系统&#xff0c;在数据存储方面展现出了其独特的魅力。它不仅支持标准的SQL语法&#xff0c;还提供了丰富的数据类型供开发者选择。这些数据类型不仅涵盖了基本的数值和文本类型&#xff0c;还包括了日期时间、二进制数据等复杂…...

Python高效实现Trie(前缀树)及其插入和查找操作

Python高效实现Trie(前缀树)及其插入和查找操作 在Python面试中,考官通常会关注候选人的编程能力、问题解决能力以及对Python语言特性的理解。Trie(前缀树)是一种高效的数据结构,广泛应用于字符串处理、自动补全、拼写检查等场景。本文将详细介绍如何实现一个Trie,并提…...

傅里叶变换家族

禹晶、肖创柏、廖庆敏《数字图像处理&#xff08;面向新工科的电工电子信息基础课程系列教材&#xff09;》 禹晶、肖创柏、廖庆敏《数字图像处理》资源二维码...

深度学习——强化学习算法介绍

强化学习算法介绍 强化学习讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。 强化学习和监督学习 强化学习有这个试错探索(trial-and-error exploration)&#xff0c;它需要通过探索环境来获取对环境的理解。强化学习 ag…...

轴承知识大全,详细介绍(附3D图纸免费下载)

轴承一般由内圈、外圈、滚动体和保持架组成。对于密封轴承&#xff0c;再加上润滑剂和密封圈&#xff08;或防尘盖&#xff09;。这就是轴承的全部组成。 根据轴承使用的工作状况来选用不同类型的轴承&#xff0c;才能更好的发挥轴承的功能&#xff0c;并延长轴承的使用寿命。我…...

【PyTorch】基础环境如何打开

前期安装可以基于这个视频&#xff0c;本文是为了给自己存档如何打开pycharm和jupyter notebookPyTorch深度学习快速入门教程&#xff08;绝对通俗易懂&#xff01;&#xff09;【小土堆】_哔哩哔哩_bilibili Pycharm 配置 新建项目的时候选择解释器pytorch-gpu即可。 Jupyte…...

QT教程:QTime和QTimer的使用场景

QTime类 QTime 是一个用来表示和操作时间的类&#xff0c;它处理一天中的具体时间&#xff08;例如小时、分钟、秒、毫秒&#xff09;。通常用于计算时间间隔、记录时间戳、获取当前时间等。 特点和功能 表示时间&#xff1a;QTime 用来表示一天中的某个具体时间&#xff08;小…...

MySQL 迁移中 explicit_defaults_for_timestamp 参数影响

前言 最近在做数据迁移的时候&#xff0c;使用的是云平台自带的同步工具&#xff0c;在预检查阶段&#xff0c;当时报错 explicit_defaults_for_timestamp 参数在目标端为 off 建议修改 on&#xff0c;有什么风险呢&#xff1f;在此记录下。 测试对比 MySQL 默认情况下 expl…...

树状数组记录

树状数组&#xff08;Fenwick Tree&#xff09;是一种用于维护数组前缀和的数据结构&#xff0c;支持高效的单点更新和区间查询操作。它的查询和更新时间复杂度为 O ( log ⁡ n ) O(\log n) O(logn)&#xff0c;适用于需要频繁更新和查询的场景。 树状数组的基本操作 单点更…...

客户端时间和服务器时间的区别

客户端时间&#xff1a; 服务器向客户端拷贝一份前端内容&#xff0c;客户端通过JS获取时间&#xff0c;这样获取的是客户端时间 服务器时间&#xff1a; 服务器通过java代码获取的时间传输给客户端&#xff0c;这样获取的是服务器时间 当有些时候需要使用客户端时间&#xf…...

已入职华为!!关于我成功拿下华为大模型算法岗经验总结

方向:大模型算法工程师 整个面试持续了1小时10分钟&#xff0c;能够看出面试官是典型搞技术的&#xff0c;问的很专业又很细&#xff0c;全程感觉压力好大&#xff0c;面完后感觉丝丝凉意&#xff0c;不过幸好还是成功拿下了Offer 一面: 自我介绍 简历项目深度交流 1.项目的背…...

从安卓开发到AI产品经理——我的AI绘画之旅

大家好&#xff0c;我是一名有着多年安卓开发经验的程序员。在日复一日的编码生活中&#xff0c;我对AI行业产生了浓厚的兴趣。于是&#xff0c;我决定转行成为一名AI产品经理。在这个过程中&#xff0c;我通过学习AI绘画工具初步了解了AI行业&#xff0c;下面我将分享我的学习…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

在Zenodo下载文件 用到googlecolab googledrive

方法&#xff1a;Figshare/Zenodo上的数据/文件下载不下来&#xff1f;尝试利用Google Colab &#xff1a;https://zhuanlan.zhihu.com/p/1898503078782674027 参考&#xff1a; 通过Colab&谷歌云下载Figshare数据&#xff0c;超级实用&#xff01;&#xff01;&#xff0…...