​LeetCode刷题实战415:字符串相加

力扣 第415题 字符串相加 与 第67题 二进制求和 力扣 第415题 字符串相加 与第67题 二进制求和第415题 字符串相加题目暴力版进阶版遇见的错误测试代码结果正确并可提交第67题 二进制求和题目思路与上题一样,直接优化版测试代码结果正确并可提交 第415题 字符串相加 题目 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9... 阅读详情

算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !

今天和大家聊的问题叫做 字符串相加,我们先来看题面:

https://leetcode-cn.com/problems/add-strings/

Given two non-negative integers, num1 and num2 represented as string, return the sum of num1 and num2 as a string.

You must solve the problem without using any built-in library for handling large integers (such as BigInteger). You must also not convert the inputs to integers directly.

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。

你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。

示例

示例 1:
输入:num1 = "11", num2 = "123"
输出:"134"

示例 2:
输入:num1 = "456", num2 = "77"
输出:"533"

示例 3:
输入:num1 = "0", num2 = "0"
输出:"0"

解题

题目分析:

设置两个变量i,j分别从num1和num2的后面开始遍历,取对应位置的数字、前面计算所得进位相加的carry,carry对10的余数放入到结果中,carry/=10。因为两个字符串长度可能不同,要记得处理剩余的字符。最后记得carry可能不等于0,要对其进行处理 .

class Solution {
public:
    string addStrings(string num1, string num2) {
        int i=num1.size()-1,j=num2.size()-1,carry=0;
        string ans;
        while(i>=0&&j>=0){
            carry+=(num1[i]-'0')+(num2[j]-'0'); //从两个字符串的后面开始相加,记得加上进位
            ans.push_back(carry%10+'0'); //将本位的求和结果放到结果中
            carry/=10;
            --i;--j;
        }
        while(i>=0){ //和下面的while,这两个只会执行其中的一个
            carry+=(num1[i]-'0'); 
            ans.push_back(carry%10+'0');
            carry/=10;
            --i;
        }
        while(j>=0){
            carry+=(num2[j]-'0');
            ans.push_back(carry%10+'0');
            carry/=10;
            --j;
        }
        while(carry!=0){ //最后记得处理可能不为0的carry
            ans.push_back(carry%10+'0');
            carry/=10;
        }
        reverse(ans.begin(),ans.end()); //将结果字符串进行翻转
        return ans;
    }
};

好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。

上期推文:

LeetCode1-400题汇总,希望对你有点帮助!

LeetCode刷题实战401:二进制手表

LeetCode刷题实战402:移掉 K 位数字

LeetCode刷题实战403:青蛙过河

LeetCode刷题实战404:左叶子之和

LeetCode刷题实战405:数字转换为十六进制数

LeetCode刷题实战406:根据身高重建队列

LeetCode刷题实战407:接雨水 II

LeetCode刷题实战408:有效单词缩写

LeetCode刷题实战409:最长回文串

LeetCode刷题实战410:分割数组的最大值

LeetCode刷题实战411:最短独占单词缩写

LeetCode刷题实战412:Fizz Buzz

LeetCode刷题实战413:等差数列划分

LeetCode刷题实战414:第三大的数

560fa52032f2bbc0ad91d454cf1c267c.png

ANSYS Maxwell:创建即用型 3D 轴向磁通电机模型 Magnet Length” 是磁体的径向长度。“Magnet Thickness” 是磁体的轴向长度。为了对 AFM 进行更详细的分析,用户需要在 ANSYS Maxwell 中运行 3D FEA 分析。对于 2D 模型,它们类似于 MotorCAD 中的模型,后者对等效的直线电机进行建模。单击“确定”后,将创建一个 3D Maxwell 模型。“长度”是转子铁的轴向长度。然后需要定义定子的“磁芯”尺寸和材料。“长度”是定子铁芯的轴向长度。“转子”# 的极数必须与“定子”中定义的磁极相同。 阅读详情

相关推荐

推荐系统公平性之流行度偏差(fairness in recommender systems -- popularity bias)

主要参考论文:《The Unfairness of Popularity Bias in Recommendation》 RMSE@RecSys 2019 流行度偏差是什么 先定义流行物品和非流行物品。下图是(Movielens 1M)数据集中物品的评分情况。 图的横坐标表示不同物品,纵坐标表示物品的评分次数。可以看出只有少部分物品得到了很多的评分,大部分曲线尾部的物品都只有少量的评分,我们也把这部分物品称为长尾物品。在本文中,我们取曲线的前20%对应的物品为流行物品,剩余的为非流行物品(长尾物品)。 然

beilizhang的博客 5275

字符串相加(Leetcode 415)

字符串相加

code2776115684的博客 302

汽车Bootloader流程

根据ISO14229-1 写的汽车行业 Bootloader流程 1:编程前 → 先读取软硬件版本号 22 F1 XX 软件信息 22 F1 XX 硬件信息 → 进入扩展会话extend diagnostic sessions 功能寻址 10 03 → 编程条件检测routine control:ECU升级条件的判断,如车速,检测车的型号 31 01 02 03 → 关闭DTC检测,(由于很多节点收不到其它节点的报文后会记录DTC故障)功能寻址 85 02 → 关闭诊断通讯(禁止各个节点的应用报...

weixin_41320142的博客 2831

【LeetCode】415. 字符串相加(面试题)

上来自我介绍完就做题了。

微信公众号: 后端码匠 498

【毕业设计】QT实战:从零构建仿QQ通讯系统,打造你的简历亮点项目

本文为计算机专业毕业生提供了一份详尽的毕业设计实战指南,教你如何从零开始使用QT框架构建一个仿QQ的即时通讯系统。文章深入剖析了项目规划、核心模块(登录、聊天、好友管理)的实现、TCP粘包处理、数据库设计等关键技术难点,并分享了如何将此项目打造成简历亮点,有效提升求职竞争力。

omega的博客 443

机器学习面试笔试求职必背!八股文(1/5)

算法工程师,技术软件类求职机器学习必背八股文 更多算法/业务/HR面等笔试题面试题 —— >个性签名自取! 1. 特征工程: 1.1 为什么要对特征做归一化处理: Feature scaling,常见的提法有“特征归一化”、“标准化”,是数据预处理中的重要技术。特征间的单位(尺度)可能不同,比如身高和体重,比如摄氏度和华氏度,比如房屋面积和房间数,一个特征的变化范围可能是[ 1000 , 10000 ] [1000, 10000][1000,10000],另一个特征的变化范围可能是[ −.

大厂offer宝典 1万+

LeetCode-字符串相加-简单

字符串相加

wxy 973

电阻基础知识及应用电路仿真(Multisim)

本文围绕硬件工程师必备的电阻知识,从基础知识、实操、应用仿真三方面做系统讲解:基础上明确电阻的核心参数、分类、串并联计算及核心特性;实操中详解贴片/色环电阻的阻值读取、贴片封装换算,重点区分0Ω电阻(贴装跳线,实现功能选通/调试等)与磁珠(高频吸噪)的差异及选型;应用上介绍限流、分压、上拉/下拉、阻抗匹配、过压/过流保护五大典型电路的设计公式、选型原则和实操要点,同时给出电阻通用的选型、测量和布线设计规范,形成完整的电阻应用知识体系。

XU157303764的博客 2775

算法题:字符串相加

字符串相加

weixin_46221198的博客 1269

RK3588 平台imx334 驱动调试记录

rk3588调试imx334

xiaoning132的专栏 1790

A2A 协议详解:Agent Card 的设计与实现

Agent Card 是 Agent2Agent (A2A) 协议中实现智能体发现与互操作性的核心组件。本文将深入剖析 Agent Card 的设计理念、关键字段及其在智能体生态系统中的作用。我们将通过详细的 JSON Schema 解析和 Python SDK 示例,帮助您理解如何精确地定义和发布智能体能力,为构建可发现、可协作的 AI 智能体奠定基础。当您使用a2a.Agent类初始化一个智能体时,SDK 会根据您提供的参数(nameversion等)自动构建内部的 Agent Card 表示。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1476

【leetcode】415. 字符串相加(Java)

题目描述 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。 题解 从后向前每一位相加,记得判断好进位。详见代码注释 class Solution { public String addStrings(String num1, String num2) { //存放结果 StringBuilder res = new

weixin_44190665的博客 337

在最新版eclipse中配置使用AI AIcoder _AIcoder配置GPUSTACK使用_配置OLLAMA本地AI模型利用_集合---AI场景应用工作笔记

本文介绍了三款实用的编程辅助工具:一款便捷的反编译插件,可直接在插件市场安装使用;GitHub Copilot提供每月2000次代码补全和50条聊天记录的免费额度,支持智能代码提示功能;aicoder支持配置本地模型运行。这些工具都能有效提升开发效率,其中GitHub Copilot的智能补全功能尤为突出。

添柴程序猿的专栏 1245

【算法】LeetCode 415—字符串相加算法详解

1. 从两个字符串的末尾开始遍历(即从个位开始) 2. 对应位置的数字相加,再加上可能的进位 3. 计算当前位的结果和新的进位 4. 将当前位的结果添加到结果字符串中 5. 遍历结束后,检查是否还有进位,如果有则添加到结果中 6. 由于我们是从低位到高位计算的,最后需要将结果字符串反转

qq_2778465975的博客 1618

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【刷题】Leetcode 415 字符串相加 和 34 字符串相乘

本文讲解了字符串相加和字符串相乘的解法

叫我龙翔的博客 1102

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【Day23】力扣:LeetCode算法刷题 [927. 三等分 ] [415. 字符串相加]

字符串相加,却不可以将字符直接转化为整形来运算,而且需要输出的依旧是字符串,那么为了得到每个位置上的数字,我们可以利用ASCII码值的加减来获取。那么我们每次就将两数字之和的个位数连接进结果的字符串中,十位数则累加进下一次的两数之和中,最终也就得到了我们需要的字符串。如果遍历过程中发现遍历到的三个数字不完全相同,说明无法将二进制数组分成三个表示相同值的部分,返回{-1,-1};还需要注意的是,我们从个位数开始遍历,所以得到的字符串是从最小位数字开始的,还需要将字符串反转一下,才算完成。

ebb29bbe的博客 1218

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

415. 字符串相加

本文深入解析了LeetCode 415题"字符串相加"的解法。该题要求模拟手工加法,在不直接转换整数的情况下,对两个字符串形式的非负整数进行相加。文章详细拆解了代码实现思路:使用双指针从字符串末尾开始遍历,逐位相加并处理进位,最后反转字符串得到正确结果。重点分析了核心逻辑、边界场景处理、算法复杂度,并对比了其他解法。该方案时间复杂度O(max(M,N)),空间复杂度O(max(M,N)),完美模拟了手工加法过程,具有良好的鲁棒性和可扩展性。

mrjieke6的博客 1210

力扣刷题记录——412. Fizz Buzz、414. 第三大的数、415. 字符串相加

本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《412. Fizz Buzz、414. 第三大的数、415. 字符串相加》。

weixin_63866037的博客 920

LeetCode 415. 字符串相加

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。

Edison's 小宇宙 1万+

【LeetCode: 415. 字符串相加 + 双指针】

【LeetCode: 415. 字符串相加 + 双指针】给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。

Coder_ljw的博客 900

【LeetCode每日一题】——415.字符串相加

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。

IronmanJay 1227

力扣刷题手册

前言: 随缘刷题,认真记录 文章目录字符串相加K次操作转字符串找出数组游戏的赢家粉刷天花板整理字符串 字符串相加 8/3力扣415字符串相加. 用字符串的方法来模拟加法过程,使用双指针从尾部开始遍历,逐个相加: 需要解决的问题: 进位。 两数长短不一致。 解决方案: 进位问题: 用一个变量记录每次相加中有没有进位,如果进位了该位置1,将加到下一个两两相加的结果中。 两数长度不一样: 有一个数已经到达数组头部时(已经加完了) 将其设为0,依然相加。 class Solution { pub.

zzzlueng的博客 1839

LeetCode 415. 字符串相加 | Python

使用双指针模拟加法运算,解决 LeetCode 《415. 字符串相加》问题

"大梦三千秋的博客 774

LeetCode 415. 字符串相加(字符串、高精度)——每日一题

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

晴空๓ 2128

LeetCode 字符串相加(415题)

LeetCode 字符串相加 @author:Jingdai @date:2020.09.25 题目描述(415题) 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 不能使用任何 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。 思路 这个其实没什么好说的,就是简单记录一下代码。从低位开始各个位相加,有进位记录进位,直接看代码。 代码 public String add(String num1, String num2) { int i = nu

qq_41512783的博客 246

leetcode刷题之415.字符串相加

leetcode刷题之415.字符串相加 题目: 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 示例 : 输入: "120" "0" 输出: "120" 代码1: ```python class Solution(object): def thirdMax(self, nums): """ :type nums: List...

胡萝卜 170
上一篇: 20 个实用的 JavaScript 单行代码
下一篇: 读文笔记:Kafka 官方设计文档
编程IT圈
博客等级 码龄6年 1130粉丝 544原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程IT圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值