0111leectode刷题5道python

66

题目描述:
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。

示例:
在这里插入图片描述
解答:

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        n=len(digits)
        for i in range(n-1,-1,-1):
            if digits[i]==9:
                digits[i]=0
            else:
                digits[i]+=1
                return digits   #直接退出循环
        return [1]+digits       #最前面增加一位

67

题目描述:
给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1 和 0。

示例:
在这里插入图片描述
解答:

class Solution:
    def addBinary(self, a: str, b: str) -> str:
        return bin(int(a,2)+int(b,2))[2:]   #bin函数返回字符串0bxxx

69

题目描述:
实现 int sqrt(int x) 函数。
计算并返回 x 的平方根,其中 x 是非负整数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

示例:
在这里插入图片描述
解答:

class Solution:
    def mySqrt(self, x: int) -> int:
        return int(math.sqrt(x))

83

题目描述:
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

示例:
在这里插入图片描述
解答:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def deleteDuplicates(self, head: ListNode) -> ListNode:
        node=head
        while node and node.next:
            if node.val==node.next.val:
                node.next=node.next.next
            else:
                node=node.next
        return head

剑指offer64

题目描述:
求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

示例:
在这里插入图片描述
解答:

class Solution:
    def sumNums(self, n: int) -> int:
        return (n*(n+1))//2     #等差数列求和

猜你喜欢

转载自blog.csdn.net/yeqing1997/article/details/112394850