Leecode加法题目3个 每日练习 Python实现(1)

简介: Leecode加法题目3个 每日练习 Python实现

问题描述:例一

image.png


代码实现:


class Solution:
    def addStrings(self, num1: str, num2: str) -> str:
        i,j=len(num1)-1,len(num2)-1 
        add=0
        answer=''
        while i>=0 or j >=0:
            x=int(num1[i]) if i>=0 else 0
            y=int(num2[j]) if j>=0 else 0
            sum=x+y+add
            answer+=str(sum%10)
            add=sum//10
            i,j=i-1,j-1
        if add>0:answer+=str(add)
        return answer[::-1]


不要忘记最前端的进制 问题本身不难😀


image.png


问题描述:例二

image.png


两种解法


一:常规操作


class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        if digits==[0]:
            return [1]
        else:
            answer=[]
            add=0
            i=len(digits)-1
            while i>=0:
                x=digits[i]
                y=1 if i==len(digits)-1 else 0
                sum=x+y+add
                answer.append(sum%10)
                add=sum//10
                i-=1
            if add>0:answer+=[add]
            return answer[::-1]


image.png


二:榴芒解法 Python一行代码解决


class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        return [int(i) for i in str(int(''.join(map(str,digits)))+1)]

image.png


两个差不了多少,但是第一个侧重通解(因为如果加数的位数不止一个一样可以那么做,可以看我之前的双指针博客)


问题描述:例三


一常规解法:


class Solution:

   def addBinary(self, a: str, b: str) -> str:

       i,j=len(a)-1,len(b)-1

       add=0

       answer=''

       while i>=0 or j>=0:

           x=int(a[i]) if i>=0 else 0

           y=int(b[j]) if j>=0 else 0

           sum=x+y+add

           answer=str(sum%2)+answer

           add=sum//2

           i,j=i-1,j-1

       if add>0:answer=str(add)+answer

       return answer



无非是把十进制改成二进制加法,换汤不换药


二:榴芒解法 Pythony一行代码搞定




class Solution:

   def addBinary(self, a: str, b: str) -> str:

       #bin(15)='0b1111'即把整数转化为二进制数

       #int('1111',2) int('A',16) 即把字符串转化成对应进制数

       return bin(int(a,2)+int(b,2))[2:]



我是小郑 期待与你一起奔赴山海!  


目录
相关文章
|
8月前
|
Python
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
139 4
|
搜索推荐 Python
Leecode 101刷题笔记之第五章:和你一起你轻松刷题(Python)
这篇文章是关于LeetCode第101章的刷题笔记,涵盖了多种排序算法的Python实现和两个中等难度的编程练习题的解法。
144 3
|
算法 C++ Python
Leecode 101刷题笔记之第四章:和你一起你轻松刷题(Python)
这篇博客是关于LeetCode上使用Python语言解决二分查找问题的刷题笔记,涵盖了从基础到进阶难度的多个题目及其解法。
120 0
|
算法 C++ Python
Leecode 101刷题笔记之第三章:和你一起你轻松刷题(Python)
本文是关于LeetCode算法题的刷题笔记,主要介绍了使用双指针技术解决的一系列算法问题,包括Two Sum II、Merge Sorted Array、Linked List Cycle II等,并提供了详细的题解和Python代码实现。
170 0
|
算法 C++ 索引
Leecode 101刷题笔记之第二章:和你一起你轻松刷题(Python)
本文是关于LeetCode 101刷题笔记的第二章,主要介绍了使用Python解决贪心算法题目的方法和实例。
120 0
|
Java C++ Python
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
|
设计模式 Unix Python
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
Python 练习实例35
Python 练习实例35

推荐镜像

更多