Entrevista a los 150 mejoresfácil

Diseño Twitter

Guía detallada e implementación de Python para el problema 'Diseñar Twitter'.

Declaración del problema

fácil

Diseñe una versión simplificada de Twitter donde los usuarios puedan publicar tweets, seguir/dejar de seguir a otro usuario y puedan ver los 10 tweets más recientes en el servicio de noticias del usuario.

Implementar la clase de Twitter:

- Twitter() Inicializa tu objeto de Twitter.

- postTweet(userId: int, tweetId: int) Compone un nuevo tweet con ID tweetId por el usuario userId.

- getNewsFeed(userId: int) -> List[int] Recupera los 10 ID de tweets más recientes en el servicio de noticias del usuario.

- follow(followerId: int, followeeId: int) El usuario con ID followerId comenzó a seguir al usuario con ID followeeId.

- dejar de seguir(followerId: int, followeeId: int) El usuario con ID followeeId comenzó a dejar de seguir al usuario con ID followeeId.

La entrada es una lista de operaciones y argumentos. Implemente una función twitter(operations: list, arguments: list) -> list que devuelva una lista de resultados (Ninguno para constructor/postTweet/follow/unfollow y Lista[int] para getNewsFeed).

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

Ejemplos

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?
Considere la posibilidad de utilizar estructuras de datos específicas de montón/cola prioritaria, como conjuntos o montones.
Edge Cases to Watch
  • Estructuras de entrada vacías
  • Entradas de un solo elemento
  • Grandes límites numéricos

¿Listo para resolver?

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

Abrir en el editor
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

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.