상위 150개 인터뷰쉬움

디자인 트위터

'Design Twitter' 문제에 대한 자세한 가이드 및 Python 구현입니다.

문제 설명

쉬움

사용자가 트윗을 게시하고, 다른 사용자를 팔로우/언팔로우하고, 사용자의 뉴스피드에서 가장 최근 트윗 10개를 볼 수 있는 간단한 버전의 트위터를 디자인하세요.

Twitter 클래스를 구현합니다.

- Twitter() 트위터 개체를 초기화합니다.

- postTweet(userId: int, tweetId: int) 사용자 userId의 tweetId ID로 새 트윗을 작성합니다.

- getNewsFeed(userId: int) -> List[int] 사용자의 뉴스피드에서 가장 최근 트윗 ID 10개를 검색합니다.

- follow(followerId: int, followeeId: int) ID가 followerId인 사용자가 ID가 followeeId인 사용자를 팔로우하기 시작했습니다.

- unfollow(followerId: int, followeeId: int) ID가 followerId인 사용자가 ID가 followeeId인 사용자를 언팔로우하기 시작했습니다.

입력은 작업 및 인수 목록입니다. 결과 목록을 반환하는 twitter(operations: list, arguments: list) -> list 함수를 구현합니다(생성자/postTweet/follow/unfollow의 경우 없음, getNewsFeed의 경우 List[int]).

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

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?
세트나 힙과 같은 힙/우선순위 큐 관련 데이터 구조를 사용하는 것을 고려해보세요.
Edge Cases to Watch
  • 빈 입력 구조
  • 단일 요소 입력
  • 큰 수치 범위

해결할 준비가 되셨나요?

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

편집기에서 열기
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

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.