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

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

问题描述:例一383e5e6c2ded4adfb8ada685ada0ab22.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]

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


223772ecd779476680a84a56f2a545a3.png

问题描述:例二

fe45b3003aa94eedaa8157e314e68309.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]


269020c32c904db3a5324c3e26ac778b.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)]

f4ad78e34bf94e84820f6f6384c05a17.png

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

问题描述:例三

1b5a49d1c6ae41b8bfffc26d769e3fdf.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

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

二:榴芒解法 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:]

0b5e5ce4f8f44eba8bc10e4dc48efe57.png


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

相关文章
|
1月前
|
搜索推荐 Python
Leecode 101刷题笔记之第五章:和你一起你轻松刷题(Python)
这篇文章是关于LeetCode第101章的刷题笔记,涵盖了多种排序算法的Python实现和两个中等难度的编程练习题的解法。
21 3
|
1月前
|
算法 C++ Python
Leecode 101刷题笔记之第四章:和你一起你轻松刷题(Python)
这篇博客是关于LeetCode上使用Python语言解决二分查找问题的刷题笔记,涵盖了从基础到进阶难度的多个题目及其解法。
15 0
|
1月前
|
算法 C++ Python
Leecode 101刷题笔记之第三章:和你一起你轻松刷题(Python)
本文是关于LeetCode算法题的刷题笔记,主要介绍了使用双指针技术解决的一系列算法问题,包括Two Sum II、Merge Sorted Array、Linked List Cycle II等,并提供了详细的题解和Python代码实现。
12 0
|
1月前
|
算法 C++ 索引
Leecode 101刷题笔记之第二章:和你一起你轻松刷题(Python)
本文是关于LeetCode 101刷题笔记的第二章,主要介绍了使用Python解决贪心算法题目的方法和实例。
10 0
|
1月前
|
Java C++ Python
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
|
1月前
|
设计模式 Unix Python
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
|
4月前
|
Python
Python推导式:小练习
Python推导式:小练习
|
4月前
|
Python
Python 练习实例35
Python 练习实例35
|
4月前
|
Python
Python 练习实例34
Python 练习实例34
|
4月前
|
Python
Python 练习实例36
Python 练习实例36