Phỏng vấn top 150Dễ dàng

Thiết kế Twitter

Hướng dẫn chi tiết và cách triển khai Python cho bài toán 'Thiết kế Twitter'.

Tuyên bố vấn đề

Dễ dàng

Thiết kế một phiên bản Twitter đơn giản hóa nơi người dùng có thể đăng tweet, theo dõi/hủy theo dõi người dùng khác và có thể xem 10 tweet gần đây nhất trong nguồn cấp tin tức của người dùng.

Triển khai lớp Twitter:

- Twitter() Khởi tạo đối tượng twitter của bạn.

- postTweet(userId: int, tweetId: int) Soạn một tweet mới có ID tweetId bởi người dùng userId.

- getNewsFeed(userId: int) -> List[int] Truy xuất 10 ID tweet gần đây nhất trong nguồn cấp tin tức của người dùng.

- follow(followerId: int, followeeId: int) Người dùng có ID followerId đã bắt đầu theo dõi người dùng có ID followeeId.

- unfollow(followerId: int, followeeId: int) Người dùng có ID followerId đã bắt đầu hủy theo dõi người dùng có ID followeeId.

Đầu vào là danh sách các phép toán và đối số. Triển khai hàm twitter(operations: list, arguments: list) -> list trả về danh sách kết quả (Không có kết quả nào cho hàm tạo/postTweet/follow/unfollow và List[int] cho getNewsFeed).

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

Ví dụ

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?
Hãy cân nhắc sử dụng các cấu trúc dữ liệu dành riêng cho Heap/Hàng ưu tiên như tập hợp hoặc heap.
Edge Cases to Watch
  • Cấu trúc đầu vào trống
  • Đầu vào phần tử đơn
  • Giới hạn số lớn

Sẵn sàng để giải quyết?

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

Mở trong Trình chỉnh sửa
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

Tài nguyên Python được đề xuất

Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.