150 principais entrevistasFácil

Design Twitter

Guia detalhado e implementação de Python para o problema 'Design Twitter'.

Declaração do problema

Fácil

Projete uma versão simplificada do Twitter onde os usuários possam postar tweets, seguir/deixar de seguir outro usuário e possam ver os 10 tweets mais recentes no feed de notícias do usuário.

Implemente a classe Twitter:

- Twitter() Inicializa seu objeto Twitter.

- postTweet(userId: int, tweetId: int) Compõe um novo tweet com ID tweetId pelo usuário userId.

- getNewsFeed(userId: int) -> List[int] Recupera os 10 IDs de tweet mais recentes no feed de notícias do usuário.

- follow(followerId: int, followeeId: int) O usuário com ID followerId começou a seguir o usuário com ID followeeId.

- deixar de seguir (followerId: int, followeeId: int) O usuário com ID followerId começou a deixar de seguir o usuário com ID followeeId.

A entrada é uma lista de operações e argumentos. Implemente uma função twitter(operations: list, arguments: list) -> list que retorna uma lista de resultados (None para construtor/postTweet/follow/unfollow e List[int] para getNewsFeed).

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

Exemplos

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 usar estruturas de dados específicas de heap/fila de prioridade, como conjuntos ou heaps.
Edge Cases to Watch
  • Estruturas de entrada vazias
  • Entradas de elemento único
  • Grandes limites numéricos

Pronto para resolver?

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

Abrir no 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 Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.