Wawancara 150 TeratasMudah

Desain Twitter

Panduan lengkap dan implementasi Python untuk masalah 'Desain Twitter'.

Pernyataan Masalah

Mudah

Rancang versi Twitter yang disederhanakan di mana pengguna dapat memposting tweet, mengikuti/berhenti mengikuti pengguna lain, dan dapat melihat 10 tweet terbaru di feed berita pengguna.

Terapkan kelas Twitter:

- Twitter() Menginisialisasi objek twitter Anda.

- postTweet(userId: int, tweetId: int) Membuat tweet baru dengan ID tweetId oleh pengguna userId.

- getNewsFeed(userId: int) -> List[int] Mengambil 10 ID tweet terbaru di feed berita pengguna.

- follow(followerId: int, followeeId: int) Pengguna dengan ID followerId mulai mengikuti pengguna dengan ID followeeId.

- unfollow(followerId: int, followeeId: int) Pengguna dengan ID followerId mulai berhenti mengikuti pengguna dengan ID followeeId.

Input adalah daftar operasi dan argumen. Terapkan fungsi twitter(operations: list, arguments: list) -> list yang mengembalikan daftar hasil (Tidak ada untuk konstruktor/postTweet/ikuti/berhenti mengikuti, dan Daftar[int] untuk getNewsFeed).

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

Contoh

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?
Pertimbangkan untuk menggunakan struktur data khusus Heap/Antrian Prioritas seperti kumpulan atau heap.
Edge Cases to Watch
  • Struktur masukan kosong
  • Masukan elemen tunggal
  • Batasan angka yang besar

Siap Memecahkannya?

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

Buka di 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

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.