【LeetCode415】字符串相加(简单双指针)

简介: 简单题。不能用函数,就用小学数学相加的方法(从右至左),存储进位carry值。双指针分别从右到左遍历两个字符串

一、题目


image.png


二、思路

简单题。不能用函数,就用小学数学相加的方法(从右至左),存储进位carry值。

双指针分别从右到左遍历两个字符串

注意:

(1)当其中一方没有数字了,另一方还有的时候,就往没有的一方填充0,这里有个trick用三元表达式写得短点哈哈。

(2)最后出了循环后carry还需要判断最后一次的,别漏了。


三、Python3代码

class Solution:
    def addStrings(self, num1: str, num2: str) -> str:
        i, j = len(num1) - 1, len(num2) - 1
        # i, j = 0 , 0 
        # 进位
        carry = 0
        res = ''
        while i >= 0 or j >= 0:
            # 有一方没数则填充0
            a = int(num1[i]) if i >= 0 else 0
            b = int(num2[j]) if j >= 0 else 0
            temp = a + b + carry
            carry = int(temp / 10) 
            num = str(temp % 10)
            res = num + res 
            i -= 1
            j -= 1
        if carry > 0:
            res = '1' + res
        return res


相关文章
|
11天前
|
JavaScript
力扣3333.找到初始输入字符串Ⅱ
【10月更文挑战第9天】力扣3333.找到初始输入字符串Ⅱ
27 1
|
25天前
|
C++
Leetcode第43题(字符串相乘)
本篇介绍了一种用C++实现的字符串表示的非负整数相乘的方法,通过逆向编号字符串,将乘法运算转化为二维数组的累加过程,最后处理进位并转换为字符串结果,解决了两个大数相乘的问题。
22 9
|
25天前
|
算法 C++
Leetcode第八题(字符串转换整数(atoi))
这篇文章介绍了LeetCode上第8题“字符串转换整数(atoi)”的解题思路和C++的实现方法,包括处理前导空格、正负号、连续数字字符以及整数溢出的情况。
15 0
|
25天前
【LeetCode 22】459.重复的子字符串
【LeetCode 22】459.重复的子字符串
27 0
|
25天前
【LeetCode 20】151.反转字符串里的单词
【LeetCode 20】151.反转字符串里的单词
17 0
|
25天前
【LeetCode 19】541.反转字符串II
【LeetCode 19】541.反转字符串II
18 0
|
25天前
【LeetCode 18】6.2.反转字符串
【LeetCode 18】6.2.反转字符串
14 0
|
2月前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
|
3月前
|
存储 算法
LeetCode第43题字符串相乘
LeetCode第43题"字符串相乘"的解题方法,通过使用数组存储乘积并处理进位,避免了字符串转换数字的复杂性,提高了算法效率。
LeetCode第43题字符串相乘