给出题目一的试题链接如下:
这一题按照题意翻译一下就行了,除了题目理解上面倒是没啥难度。
我们给出python代码实现如下:
class Solution:
def digitCount(self, num: str) -> bool:
cnt = Counter(num)
for i, ch in enumerate(num):
if int(ch) != cnt[str(i)]:
return False
return True
提交代码评测得到:耗时47ms,占用内存13.8MB。
给出题目二的试题链接如下:
这题同样思路还是非常直接,对每一个用户建立一个Counter来后记录下其发送的单词数目,然后进行排序即可。
给出python代码实现如下:
class Solution:
def largestWordCount(self, messages: List[str], senders: List[str]) -> str:
cnt = defaultdict(int)
for msg, sender in zip(messages, senders):
cnt[sender] += len(msg.split())
senders = sorted(cnt.keys(), key=lambda x: (cnt[x], x), reverse=True)
return senders[0]
提交代码评测得到:耗时511ms,占用内存21.9MB。
给出题目三的试题链接如下:
这一题的思路想清楚了之后还是非常直接的,显然一个结点的importance就是这个节点的度,因此,我们只需要记录一下所有节点的度,然后排个序然后分配一下权重,最后重新计算一下所有道路的权重之和即可。
给出python代码实现如下:
class Solution:
def maximumImportance(self, n: int, roads: List[List[int]]) -> int:
deg = defaultdict(int)
for u, v in roads:
deg[u] += 1
deg[v] += 1
nodes = [i for i in range(n)]
nodes = sorted(nodes, key=lambda x: deg[x], reverse=True)
weights = {u: n-i for i, u in enumerate(nodes)}
res = 0
for u, v in roads:
res += weights[u] + weights[v]
return res
提交代码评测得到:耗时3235ms,占用内存39.5MB。
给出题目四的试题链接如下:
这一题很不幸的没能搞定,所以这里就不详述了,如果有搞定了的朋友欢迎在评论区指点一下,反正我是看排行榜上的大佬们的code都巨长无比……