Hone logo
Hone
Problems

Identifying Invalid Tweets

In the digital age, social media platforms are a vital communication tool. However, the rapid dissemination of information also presents challenges, such as the potential for users to post content that doesn't meet platform guidelines. This challenge focuses on identifying tweets that are too long to be valid, a common requirement for maintaining a positive user experience and adhering to platform limitations.

Problem Description

Your task is to identify and filter out "invalid" tweets from a given list. A tweet is considered invalid if its tweet_id is odd and its content length is greater than 15 characters. You should return a list of the tweet_ids of all invalid tweets.

Key Requirements:

  • Iterate through a list of tweets.
  • For each tweet, check two conditions:
    • Is the tweet_id odd?
    • Is the length of the content string strictly greater than 15?
  • If both conditions are true for a tweet, add its tweet_id to a result list.
  • Return the final list of invalid tweet_ids.

Expected Behavior:

The function should process all provided tweets and return only the tweet_ids that satisfy the invalidity criteria.

Edge Cases:

  • An empty list of tweets should result in an empty output list.
  • Tweets with tweet_ids that are even will never be considered invalid by this definition, regardless of content length.
  • Tweets with content length of 15 or less will never be considered invalid by this definition, regardless of tweet_id.

Examples

Example 1:

Input:
tweets = [
    {"tweet_id": 1, "content": "This tweet is a bit long."},
    {"tweet_id": 2, "content": "Short."},
    {"tweet_id": 3, "content": "This is an extremely long tweet that definitely exceeds the limit."},
    {"tweet_id": 4, "content": "Another tweet that is exactly fifteen chars."}
]

Output: [1, 3]

Explanation:
- Tweet with tweet_id 1: tweet_id is odd (1), content length is 25 (> 15). Invalid.
- Tweet with tweet_id 2: tweet_id is even (2). Not invalid.
- Tweet with tweet_id 3: tweet_id is odd (3), content length is 63 (> 15). Invalid.
- Tweet with tweet_id 4: tweet_id is even (4). Not invalid.

Example 2:

Input:
tweets = [
    {"tweet_id": 101, "content": "Short and sweet."},
    {"tweet_id": 102, "content": "This one is just slightly longer."},
    {"tweet_id": 103, "content": "Exactly fifteen char."}
]

Output: []

Explanation:
- Tweet with tweet_id 101: tweet_id is odd (101), but content length is 16 (> 15). Invalid.  Wait, let me re-evaluate. The content length is 16 which is > 15.  The tweet_id is odd (101). Therefore, this tweet is invalid. My apologies for the error in the initial reasoning.
- Tweet with tweet_id 102: tweet_id is even (102). Not invalid.
- Tweet with tweet_id 103: tweet_id is odd (103), but content length is 20 (> 15). Invalid.  Again, my apologies.  The content length is 20, which is > 15. The tweet_id is odd (103). Thus, this tweet is invalid.

Corrected Output for Example 2: [101, 103]

Explanation (Corrected):
- Tweet with tweet_id 101: tweet_id is odd (101), content length is 16 (> 15). Invalid.
- Tweet with tweet_id 102: tweet_id is even (102). Not invalid.
- Tweet with tweet_id 103: tweet_id is odd (103), content length is 20 (> 15). Invalid.

Example 3:

Input:
tweets = []

Output: []

Explanation: An empty input list results in an empty output list.

Constraints

  • The number of tweets in the input list will be between 0 and 1000, inclusive.
  • tweet_id will be a positive integer.
  • content will be a string. The length of content will be between 0 and 1000 characters, inclusive.
  • The solution should be efficient, ideally processing the tweets in a single pass.

Notes

  • The modulo operator (%) can be useful for checking if a number is odd.
  • Consider how to get the length of a string in your chosen programming language.
  • The problem defines invalidity based on both conditions being true. If either condition is false, the tweet is not invalid.
Loading editor...
plaintext