本文介绍: 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。items=“abcdaaadse”, key=“a” 返回–> 3。items=“abcdaaadse”, key=“z” 返回–> 0。输入: nums = [1,1,1,2,2,3], k = 2。输入: nums = [1], k = 1。输入:nums = [3,2,3]输入:nums = [1,2]输入:nums = [1]

一、有效字符串

您将得到一个字符串和一个有效单词列表(所有字母都是小写)。
请编写一个函数,判断字符串是否由列表中的一个或多个单词组成。

assert valid_word(‘hogwarts’, [‘hog’, ‘warts’]) is True
assert valid_word(‘hogwarts’, [‘warts’, ‘hog’]) is True
assert valid_word(‘hogwarts’, [‘war’,‘ts’, ‘hog’]) is True
assert valid_word(‘hogwarts’, [‘h’,‘o’,‘g’,‘w’,‘a’,‘r’,‘t’,‘s’]) is True
assert valid_word(‘hogwarts’, [‘hog’, ‘wart’]) is False
assert valid_word(‘hogwarts’, [‘hogw’, ‘warts’]) is False

def valid_word(word, li):
    for item in li:
        word = word.replace(item, '')
    if len(word) == 0:
        return True
    else:
        return False


word = 'hogwarts'
li = ['war', 'ts', 'hog1']
res = valid_word(word, li)
print(res)

二、求最长的连续的字符串个数

items=90000, key=0 返回–> 4
items=“abcdaaadse”, key=“a” 返回–> 3
items=“abcdaaadse”, key=“z” 返回–> 0

def get_consective_items(items, key):
    count, tmp = 0, 0
    for i in str(items):
        if i != str(key):
            tmp = 0
            continue
        tmp += 1
        if tmp > count:
            count = tmp

    return count

items = "abcdaaadse"
key = "a"
res = get_consective_items(items, key)
print(res)

三、229. 多数元素 II

提示
中等

给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。

示例 1:
输入:nums = [3,2,3]
输出:[3]

示例 2:
输入:nums = [1]
输出:[1]

示例 3:
输入:nums = [1,2]
输出:[1,2]

class Solution:
    def majorityElement(self, nums: List[int]) -> List[int]:
        d = {}
        for i in range(len(nums)):
            if nums[i] in d:
                d[nums[i]] += 1
            else:
                d[nums[i]] = 1
        k = int(len(nums)/3)
        ans = []
        for item in d.keys():
            if d[item] > k:
                ans.append(item)
        return ans

四. 前 K 个高频元素

给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。

示例 1:
输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]

示例 2:
输入: nums = [1], k = 1
输出: [1]

from collections import Counter
class Solution:
    def topKFrequent(self, nums: List[int], k: int) -> List[int]:
        dic = Counter(nums)
        res = sorted(dic.items(), key=lambda item:item[1], reverse=True)
        return list(map(lambda x:x[0], res))[:k]



nums = [1,1,1,2,2,3]
k=2
res=Solution()
aa=res.topKFrequent(nums,k)
print(aa)

c=Counter(nums)
print(c.items())

原文地址:https://blog.csdn.net/YZL40514131/article/details/134863760

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_50511.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注