0114leetcode刷题5道python

28

题目描述:
实现 strStr() 函数。
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。

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

class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        return haystack.find(needle)

535

题目描述:
TinyURL是一种URL简化服务, 比如:当你输入一个URL https://leetcode.com/problems/design-tinyurl 时,它将返回一个简化的URL http://tinyurl.com/4e9iAk.
要求:设计一个 TinyURL 的加密 encode 和解密 decode 的方法。你的加密和解密算法如何设计和运作是没有限制的,你只需要保证一个URL可以被加密成一个TinyURL,并且这个TinyURL可以用解密方法恢复成原本的URL。

解答:

class Codec:

    def encode(self, longUrl: str) -> str:
        """Encodes a URL to a shortened URL.
        """
        return longUrl
        

    def decode(self, shortUrl: str) -> str:
        """Decodes a shortened URL to its original URL.
        """
        return shortUrl

# Your Codec object will be instantiated and called as such:
# codec = Codec()
# codec.decode(codec.encode(url))

1395

题目描述:
n 名士兵站成一排。每个士兵都有一个 独一无二 的评分 rating 。
每 3 个士兵可以组成一个作战单位,分组规则如下:
从队伍中选出下标分别为 i、j、k 的 3 名士兵,他们的评分分别为 rating[i]、rating[j]、rating[k]
作战单位需满足: rating[i] < rating[j] < rating[k] 或者 rating[i] > rating[j] > rating[k] ,其中 0 <= i < j < k < n
请你返回按上述条件可以组建的作战单位数量。每个士兵都可以是多个作战单位的一部分。

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

解答:

class Solution:
    def numTeams(self, rating: List[int]) -> int:
        sum=res1=res2=res3=res4=0           #直接三重循环一直超时
        for j in range(1,len(rating)-1):    #固定中间的数,前后的判断大小,然后组合
            for i in range(j):
                if rating[i]<rating[j]:
                    res1+=1
                elif rating[i]>rating[j]:
                    res2+=1
            for k in range(j+1,len(rating)):
                if rating[j]<rating[k]:
                    res3+=1
                elif rating[j]>rating[k]:
                    res4+=1
            sum+=res1*res3+res2*res4
            res1=res2=res3=res4=0
        return sum

1720

题目描述:
未知 整数数组 arr 由 n 个非负整数组成。
经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1] 。例如,arr = [1,0,2,1] 经编码后得到 encoded = [1,2,3] 。
给你编码后的数组 encoded 和原数组 arr 的第一个元素 first(arr[0])。
请解码返回原数组 arr 。可以证明答案存在并且是唯一的。

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

解答:

class Solution:
    def decode(self, encoded: List[int], first: int) -> List[int]:
        res=[first]
        for i in encoded:
            res.append(i^res[-1])
        return res

面试题目16.01

题目描述:
编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值。

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

class Solution:
    def swapNumbers(self, numbers: List[int]) -> List[int]:
        return [numbers[1],numbers[0]]

猜你喜欢

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