*python3__leecode/0415. 字符串相加

避坑指南:企业微信IP白名单设置失败的5种常见原因及解决方案 本文深入解析企业微信API调用中IP白名单设置失败的5种常见原因,包括动态公网IP变更、代理服务器导致的IP失真等,并提供针对性的解决方案。特别针对可信IP配置问题,详细介绍了诊断方法和Java代码示例,帮助企业开发者快速解决访问限制问题,确保API调用安全稳定。 阅读详情

一、刷题内容

原题链接

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

内容描述

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

提示:
num1 和num2 的长度都小于 5100
num1 和num2 都只包含数字 0-9
num1 和num2 都不包含任何前导零
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式

二、解题方法

1.方法一:双指针

算法流程: 设定 i,j 两指针分别指向 num1,num2 尾部,模拟人工加法;

· 计算进位: 计算 carry = tmp // 10,代表当前位相加是否产生进位;
· 添加当前位: 计算 tmp = n1 + n2 + carry,并将当前位 tmp % 10 添加至 res 头部;
· 索引溢出处理: 当指针 i或j 走过数字首部后,给 n1,n2 赋值为 0,相当于给 num1,num2 中长度较短的数字前面填 0,以便后续计算。
· 当遍历完 num1,num2 后跳出循环,并根据 carry 值决定是否在头部添加进位 1,最终返回 res 即可。

class Solution:
    def addStrings(self, num1: str, num2: str) -> str:
        res = ""
        i, j, carry = len(num1) - 1, len(num2) - 1, 0
        while i >= 0 or j >= 0:
            n1 = int(num1[i]) if i >= 0 else 0
            n2 = int(num2[j]) if j >= 0 else 0
            tmp = n1 + n2 + carry
            carry = tmp // 10
            res = str(tmp % 10) + res
            i, j = i - 1, j - 1
        return "1" + res if carry else res

时间复杂度 O(max(M,N)):其中 M,N 为 2 数字长度,按位遍历一遍数字(以较长的数字为准);
空间复杂度 O(1):指针与变量使用常数大小空间。

华为铁三角(AR、SR、FR)的考核指标设计 以和为核心,通过和实现协同。考核维度分为和,并随市场阶段动态调整权重。 阅读详情

相关推荐

5分钟搞懂MSDNet:用Transformer实现小样本语义分割的保姆级教程

本文详细介绍了MSDNet(Multi-Scale Decoder Network)如何利用Transformer架构实现小样本语义分割。通过多尺度解码器和空间Transformer解码器,MSDNet能够在仅有1-5张标注图像的情况下完成精确分割任务。文章提供了PyTorch代码实例和优化技巧,帮助开发者快速掌握这一前沿技术。

weixin_30832143的博客 506

「2023牛客OI 赛前集训营普及组第一场」提取数字 题解

对于字符串处理,细节最为重要!

charlotte_TYQのブログ 562

光模块封装工艺简介

光模块按照部件可以分为芯片、光器件、光模块三个层级;按照应用领域大概可分为电信应用、数通应用两个领域;按照内部器件的封装工艺可分为TO、Box、COB三大类。 但是,无论是哪种类型的光模块,其生产工艺基本上可以分为封装、测试两大块。   那什么叫做器件封装呢?我的理解器件封装就是利用胶水、焊料、机械、热量等手段把器件按照一定的先后次序结合形成一个整体的过程,就好像早上吃的煎饼,把面粉、鸡蛋、脆饼、烤肠、葱花等这些“器件”,按照一定的顺序,通过食用油、甜面酱、加热、卷起来等手段结合到一起,形成了美味的

qq_33253182的博客 2826

两个字符串相加——字符串进位的实践

一、二进制求和 1.1 题目 给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字1和0。 1.2、题解 我们可以借鉴「列竖式」的方法,末尾对齐,逐位相加。在十进制的计算中「逢十进一」,二进制中我们需要「逢二进一」。 1、先反转这个代表二进制数字的字符串,然后低下标对应低位,高下标对应高位。 2、我们使用一个变量 carry 表示上一个位置的进位,初始值为 0 3、记当前位置对其的两个位为 ai​ 和 bi,则每一位为 (carry+ai+bi) mo...

sinat_31608641的博客 5189

Flash芯片的VCC上电到可操作时间过长

Flash的VCC上电到操作时间(tVSL)通常有最大值限制,如果超过这个时间,核心风险是状态机不同步和指令锁存错误。比如芯片内部振荡器可能已经尝试启动又休眠了,但主控却在这之后才发送指令,导致完全 misinterpreted。Flash芯片的(从电源上电到可以正常进行读写操作的时间)如果过长,会产生一系列负面影响简单来说,这个时间过长意味着电源上升速度太慢,违反了芯片的要求。

qq_61918649的博客 722

深入String字符串相加结果与原理

String a = "a"; String b = "b"; String c1 = "ab"; String c = "a"+"b"; String c2 = "a"+"b"; 1. 分析: String a = "a"; String b = "b"; String c1 = "ab"; 1.会把字符串"a"、“b”、“ab"放进常量池中,并返回给a、b、c1 2.String c=”a“+“b” jvm会在运行时将"a”+“b"自动拼接成"ab”, 然后会首先在常量池中..

weixin_43874591的博客 1万+

Openwork 入门指南:开源 AI 桌面助手快速上手

Openwork是一款开源的AI桌面代理工具,提供类似Claude Cowork的免费替代方案。它支持本地运行,确保隐私安全,并能高效处理文件整理、文档读写等任务。支持多种AI模型,通过MIT许可完全免费。安装简单,仅需运行命令行或下载桌面版,需配置API Key后即可使用。操作直观,支持多步骤规划和权限控制,适合自动化重复工作。目前主要支持macOS,未来将扩展至Windows/Linux。建议从简单任务入手,逐步掌握这一高效的数字助手工具。

3803

415. 字符串相加

415. 字符串相加 1. 题目描述 题目链接 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包含任何前导零。 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。 2. 题目分析 字符串相加,主要也是为了解...

凌凌小博客 1681

GD32重映射实战:从部分映射到完全映射的配置解析

本文深入解析GD32微控制器的重映射功能,以定时器1的PWM通道为例,详细阐述了从部分映射到完全映射的实战配置流程。文章重点介绍了AFIO模块的核心作用、配置寄存器操作以及关键的避坑指南,旨在帮助开发者灵活优化PCB布局并解决引脚资源冲突,从而高效利用芯片外设功能。

k6l7m8n9的博客 694

OpenClaw用户必看:每天0成本使用OpenClaw!NVIDIA NIM免费大模型接入教程

🚀 OpenClaw接入NVIDIA NIM免费API!glm5、minimax-m2.5等大量模型任选,0成本升级AI助手!💰

XiaoqiangClub的博客 5579

Python学习笔记----操作字符串

1、字符串相加、列表相加。列表和字符串不能混着使用 #序列相加 a="hello" b="python" c=a+b print("字符串相加的结果",c) print() print([1,2,3]+a) 长度、最小值、最大值 strs=input("请输入一个字符串:") print("字符串的长度是:",len(strs)) print("字符串的最大字符",max(strs)) print("字符串的最小字符",min(strs)) 字符串中常用的方法 Str.find(sub,

日常笔记 | 干货分享 | 毕设源码 | 毕设指导 | 答辩指导 3377

重回童年的经典系列☀️| 【坦克大战3D版】游戏制作+解析

带你重回童年的经典系列——坦克大战3D版制作,感兴趣的可以看看呀~

努力前行,总会成为自己心中的那道光 5万+

B. T2: 提取数字

给定一个字符串,请你提取出字符串中的所有数字,并且将每个数字加上 5 之后再求和。请注意:数字可能包含前导零,详见样例 2。保证所有数字之和在 long long 的范围内。

m0_73414906的博客 707

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

[C++]-字符串相加/字符串相乘

示例 3: 输入:num1 = "0", num2 = "0"给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。输出: "56088"

dio33的博客 5711

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

字符串——字符串相加

这里提一下怎么插入字符串,由于加法的规则,每次得到的结果是尾部的数据,所以,需要不断的头插来保证字符的顺序正确,但是头插需要挪动数据(string底层是顺序表),所以效率大打折扣,可以通过尾插O(1)来,然后逆置字符串来替代这种算法。要处理字符串相加,大致想法是,按照加法对齐,将单个字符用整型表示,相加后将结果分解为进位0或1和某个数字,然后将该数字用字符形式存进字符串。需要把end1和end2指向的字符转化为数字(减字符0),然后相加,结果是一个整型。按照加法对齐,用双指针的形式来遍历相加。

主要为C++知识点、Linux知识点,计算机组成结构笔记。 1173

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

查出的字符串前面加数值_STATA中的字符串变量如何操作?

在STATA中,我们经常见到有些变量的格式是字符串(string)的形式,也就是一团红色的字体,比如下面这个图。 我们通常是不太喜欢它的,为什么呢?因为字符串很难操作。像G这一列变量,其实是受教育程度,是可以操作转化为特定的数值型变量的。但作为字符串的受教育程度却不能直接计算数值。总之就是特别不好整。那么,他们...

weixin_39612849的博客 5476

【C++】415.字符串相加

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

HackerKevon的博客 3215

字符串中的数字相加

将字符串中的数字相加思路:1.需要将各个值放到数组中,' , '相当于各个字符的分割符,将各个值拆分出来,用分割符号来分割字符串,得到数组; 2.需要遍历数组,看看哪些属于数值(只是将数值进行相加的运算),需要弄清楚哪些属于数值,哪些属于字符串(需让程序识别出来) 注:其它字符(不是数字的),不进行相加运算 1.用分割符号来分割字符串,得到数组 <?php header('conte...

qq_43628350的博客 6741

Java中字符串相加和字符串常量相加区别

  有一道这样的程序:   1 public class TestStringDemo { 2 3 public static void main(String[] args) { 4 5 String s1 = "Programming"; 6 String s2 = new String("Programming"); 7 ...

千年似流水的博客 9513

LeetCode-字符串相加-简单

字符串相加

wxy 973

字符串相加

字符串相加(点击链接进入题目) 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 提示:   num1 和num2 的长度都小于 5100   num1 和num2 都只包含数字 0-9   num1 和num2 都不包含任何前导零   你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式 题目分析: 法一:   我们先假设给定的不是字符串形式的数字,而是正常的非负整数,则两数相加遵循正常的加法运算,个位数与个位数相加,十位数与十位数相加,如果该位计

小东的博客 4183

字符串(数字)相加

字符串相加,有很多地方要注意,两串长不一致,进位数据的保存,和两数相加后的进位处理,以及循环控制,和边界判断。

qq_55895496的博客 791

Stata数据处理:各种求和方式一览

全文阅读:https://www.lianxh.cn/news/3ce33ba6750a7.html 作者:刘欣妍 (香港中文大学)邮箱:liuxinyan@link.cuhk.edu.hk   目录 1. generate 命令的 sum() 函数 2. egen 命令的 sum() 和 rsum() 函数 3. tscollap 命令 4. rolling 命令 5. 扩展阅读   本文主要通过一些案例演示,来解决大家在 Stata 应用中遇到的各种求和问题。  ..

Stata连享会 4万+

字符串数字相加

比如输入21345,求出2+1+3+4+5 方法一: Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); //先把这个整数转换成字符串 String string = String.valueOf(n); int a = 0; int sum = 0; for (int i = 0; i < string.length(); i++) { //截取每个字符串的一位数然后转乘整型,进行相加 a =

alovelypeach的博客 2854

leet 415. 字符串相加 C语言

由于我们是从后向前遍历的数组,在结果数组中数据的存放是低位的在前面而高位的数在后面,我们需要对其进行逆序操作得到最终结果。当num1中元素也访问完毕时,此时应该判断是否还有进位,即pro 是否 等于1,若是还有进位则添加进入结果数组中。当运算结束后,i,j向前移动,pro = (6 + 7) / 10 = 1,进位为1;刚开始时,i ,j分别指向最后一个元素,从后往前访问数组内容,进位pro = 0;), 也不能直接将输入的字符串转换为整数形式。,计算它们的和并同样以字符串形式返回。构建一个数组用于存放。

Sunshine_jay的博客 1795
上一篇: *python3__leecode/0560. 和为K的子数组
下一篇: python3__leecode/0763. 划分字母区间
百里 Jess
博客等级 码龄8年 3999粉丝 125原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

百里 Jess

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

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

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

打赏作者

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

抵扣说明:

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

余额充值