31
31
// User 1's news feed should return a list with 1 tweet id -> [5],
32
32
// since user 1 is no longer following user 2.
33
33
twitter.getNewsFeed(1);
34
- '''
34
+ '''
35
+
36
+ class Twitter :
37
+
38
+ def __init__ (self ):
39
+ self .users = {}
40
+ self .tweets = []
41
+
42
+
43
+ def postTweet (self , userId : int , tweetId : int ) -> None :
44
+ if userId not in self .users :
45
+ self .users [userId ] = set ()
46
+ self .tweets .append ([tweetId , userId ])
47
+
48
+
49
+ def getNewsFeed (self , userId : int ) -> List [int ]:
50
+ feed = []
51
+ for i in range (len (self .tweets )- 1 , - 1 , - 1 ):
52
+ if userId in self .users and (self .tweets [i ][1 ] in self .users [userId ] or self .tweets [i ][1 ]== userId ):
53
+ feed .append (self .tweets [i ][0 ])
54
+
55
+ if len (feed )== 10 :
56
+ break
57
+ return feed
58
+
59
+
60
+ def follow (self , followerId : int , followeeId : int ) -> None :
61
+ """
62
+ Follower follows a followee. If the operation is invalid, it should be a no-op.
63
+ """
64
+ if followerId != followeeId :
65
+ if followerId not in self .users :
66
+ self .users [followerId ] = set ()
67
+ self .users [followerId ].add (followeeId )
68
+
69
+
70
+
71
+ def unfollow (self , followerId : int , followeeId : int ) -> None :
72
+ """
73
+ Follower unfollows a followee. If the operation is invalid, it should be a no-op.
74
+ """
75
+ if followerId != followeeId and followerId in self .users and followeeId in self .users [followerId ]:
76
+ self .users [followerId ].remove (followeeId )
77
+
78
+
79
+
80
+ # Your Twitter object will be instantiated and called as such:
81
+ # obj = Twitter()
82
+ # obj.postTweet(userId,tweetId)
83
+ # param_2 = obj.getNewsFeed(userId)
84
+ # obj.follow(followerId,followeeId)
85
+ # obj.unfollow(followerId,followeeId)
0 commit comments