本文主要是介绍Python | Leetcode Python题解之第355题设计推特,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
题解:
class Twitter:class Node:def __init__(self):self.followee = set()self.tweet = list()def __init__(self):self.time = 0self.recentMax = 10self.tweetTime = dict()self.user = dict()def postTweet(self, userId: int, tweetId: int) -> None:if userId not in self.user:self.user[userId] = Twitter.Node()self.user[userId].tweet.append(tweetId)self.time += 1self.tweetTime[tweetId] = self.timedef getNewsFeed(self, userId: int) -> List[int]:if userId not in self.user:return list()ans = self.user[userId].tweet[-10:][::-1]for followeeId in self.user[userId].followee:if followeeId in self.user:opt = self.user[followeeId].tweet[-10:][::-1]i, j, combined = 0, 0, list()while i < len(ans) and j < len(opt):if self.tweetTime[ans[i]] > self.tweetTime[opt[j]]:combined.append(ans[i])i += 1else:combined.append(opt[j])j += 1combined.extend(ans[i:])combined.extend(opt[j:])ans = combined[:10]return ansdef follow(self, followerId: int, followeeId: int) -> None:if followerId != followeeId:if followerId not in self.user:self.user[followerId] = Twitter.Node()self.user[followerId].followee.add(followeeId)def unfollow(self, followerId: int, followeeId: int) -> None:if followerId != followeeId:if followerId in self.user:self.user[followerId].followee.discard(followeeId)
这篇关于Python | Leetcode Python题解之第355题设计推特的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!