2020年4月15日华为实习笔试题

题目就不介绍了,就是个投票,然后求“大家心目中最靓的仔”

我就是,我就是,这条街,这华为,最靓的仔!

后面有时间补充题目内容,直接上代码吧!

已经AC!




# 字典的多条件的排序

# list2 = input().strip().split(",")


def fun(str2):
	list3 = list(str2)

	if ord(list3[0])<65 or ord(list3[0])>90:
		return False

	for i in (1,len(list3)-1):
		if ord(list3[i])<97 or ord(list3[i])>122:
			return False
	return True


def test(list3):
	list2 = list3.strip().split(",")

	for i in list2:
		if fun(i)==True:
			continue
		else:
			return "error.0001"

	dict2 = {}

	for i in list2:
	    dict2[i] = dict2.get(i, 0) + 1


	temp = 0
	for value in dict2.values():
		temp += value


	if temp<0 or temp>100:
		return "error.0001"


	l = sorted(dict2.items(), key=lambda s:(-s[1], s[0]))
	return l[0][0]


list2 = input()
print(test(list2))

严重怀疑华为是不是从leetcode上面的变形的题目

leetcode692  上面的题目为:

给一非空的单词列表,返回前 k 个出现次数最多的单词。

返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。

示例 1:

输入: ["i", "love", "leetcode", "i", "love", "coding"], k = 2
输出: ["i", "love"]
解析: "i" 和 "love" 为出现次数最多的两个单词,均为2次。
    注意,按字母顺序 "i" 在 "love" 之前。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/top-k-frequent-words
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


from typing import List

class Solution:
    def topKFrequent(self, words: List[str], k: int) -> List[str]:
        dict2 = {}

        for i in words:
            dict2[i] = dict2.get(i, 0) + 1

        l = sorted(dict2.items(), key=lambda s: (-s[1], s[0]))
        res = []

        for i in range(k):
            res.append(l[i][0])
        return res



if __name__ == "__main__":
    s = Solution()
    list2 = ["i", "love", "leetcode", "i", "love", "coding"]
    k = 2

    print(s.topKFrequent(list2, k))

 

你可能感兴趣的:(Python笔记,春招实习,python)