Top 150 des entrevuesFacile

Concevoir Twitter

Guide détaillé et implémentation de Python pour le problème « Concevoir Twitter ».

Énoncé du problème

Facile

Concevez une version simplifiée de Twitter où les utilisateurs peuvent publier des tweets, suivre/ne plus suivre un autre utilisateur et voir les 10 tweets les plus récents dans le fil d'actualité de l'utilisateur.

Implémentez la classe Twitter :

- Twitter() Initialise votre objet Twitter.

- postTweet(userId: int, tweetId: int) Compose un nouveau tweet avec l'ID tweetId par l'utilisateur userId.

- getNewsFeed(userId: int) -> List[int] Récupère les 10 identifiants de tweet les plus récents dans le fil d'actualité de l'utilisateur.

- follow(followerId: int, followeeId: int) L'utilisateur avec l'ID followerId a commencé à suivre l'utilisateur avec l'ID followeeId.

- ne plus suivre (followerId: int, followeeId: int) L'utilisateur avec l'ID followerId a commencé à ne plus suivre l'utilisateur avec l'ID followeeId.

L'entrée est une liste d'opérations et d'arguments. Implémentez une fonction twitter(operations: list, arguments: list) -> list qui renvoie une liste de résultats (Aucun pour constructeur/postTweet/follow/unfollow et List[int] pour getNewsFeed).

Contraintes
  • 1 <= userId, followerId, followeeId <= 500
  • 0 <= tweetId <= 10^4
  • All the tweets have unique IDs
  • At most 30000 calls will be made in total

Exemples

Example 1
Input
operations = ["Twitter", "postTweet", "getNewsFeed", "follow", "postTweet", "getNewsFeed", "unfollow", "getNewsFeed"], arguments = [[], [1, 5], [1], [1, 2], [2, 6], [1], [1, 2], [1]]
Output
[None, None, [5], None, None, [6, 5], None, [5]]
Explanation

User 1 posts tweet 5. News feed: [5]. User 1 follows 2. User 2 posts tweet 6. News feed: [6, 5]. User 1 unfollows 2. News feed: [5].

Need a Hint?
Envisagez d'utiliser des structures de données spécifiques au tas/à la file d'attente prioritaire, comme des ensembles ou des tas.
Edge Cases to Watch
  • Structures d'entrée vides
  • Entrées à élément unique
  • Grandes limites numériques

Prêt à résoudre ?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Ouvrir dans l'éditeur
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.