0123leetcode刷题5道python

704

题目描述:
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

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

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        '''
        if target in nums:
            return nums.index(target)
        else:
            return -1
        '''
        left,right=0,len(nums)-1
        if len(nums)==0:
            return -1
        while left<=right:
            mid=(left+right)//2
            if nums[mid]<target:
                left=mid+1
            elif nums[mid]>target:
                right=mid-1
            else:
                return mid
        return -1

989

题目描述:
对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。
给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。

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

class Solution:
    def addToArrayForm(self, A: List[int], K: int) -> List[int]:
        return list(map(int,str(int(''.join(map(str,A)))+K)))

面试题08.07

题目描述:
无重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同。

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

class Solution:
    def permutation(self, S: str) -> List[str]:
        #python自带排列组合方法
        from itertools import permutations
        result=[]
        for i in permutations(S,len(S)):
            result.append("".join(i))
        return result

面试题16.02

题目描述:
设计一个方法,找出任意指定单词在一本书中的出现频率。
你的实现应该支持如下操作:
WordsFrequency(book)构造函数,参数为字符串数组构成的一本书
get(word)查询指定单词在书中出现的频率

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

class WordsFrequency:

    def __init__(self, book: List[str]):
        self.data=Counter(book)


    def get(self, word: str) -> int:
        return self.data[word]



# Your WordsFrequency object will be instantiated and called as such:
# obj = WordsFrequency(book)
# param_1 = obj.get(word)

面试题16.07

题目描述:
编写一个方法,找出两个数字a和b中最大的那一个。不得使用if-else或其他比较运算符。

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

class Solution:
    def maximum(self, a: int, b: int) -> int:
        #return max(a,b)
        return int(((a+b)+abs(a-b))/2)

猜你喜欢

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