#3150
Easy Database Invalid tweets ii
Database
84.8% acceptance
Mar 31, 2026
18
3
No description available.
Solution
Pandas
Time O(1)
Space O(1)
# Table: Tweets
#
# +----------------+---------+
# | Column Name | Type |
# +----------------+---------+
# | tweet_id | int |
# | content | varchar |
# +----------------+---------+
# tweet_id is the primary key (column with unique values) for this table.
# This table contains all the tweets in a social media app.
#
# Write a solution to find invalid tweets. A tweet is considered invalid if it meets any of the following criteria:
#
# It exceeds 140 characters in length.
#
# It has more than 3 mentions.
#
# It includes more than 3 hashtags.
#
# Return the result table ordered by tweet_id in ascending order.
#
# The result format is in the following example.
#
# Example 1:
# Input:
# Tweets table:
# +----------+-----------------------------------------------------------------------------------+
# | tweet_id | content |
# +----------+-----------------------------------------------------------------------------------+
# | 1 | Traveling, exploring, and living my best life @JaneSmith @SaraJohnson @LisaTaylor |
# | | @MikeBrown #Foodie #Fitness #Learning |
# | 2 | Just had the best dinner with friends! #Foodie #Friends #Fun |
# | 4 | Working hard on my new project #Work #Goals #Productivity #Fun |
# +----------+-----------------------------------------------------------------------------------+
# Output:
# +----------+
# | tweet_id |
# +----------+
# | 1 |
# | 4 |
# +----------+
# Explanation:
# tweet_id 1 contains 4 mentions.
# tweet_id 4 contains 4 hashtags.
# Output table is ordered by tweet_id in ascending order.
import pandas as pd
def find_invalid_tweets(tweets: pd.DataFrame) -> pd.DataFrame:
def is_invalid(content):
if len(content) > 140:
return True
if content.count('@') > 3:
return True
if content.count('#') > 3:
return True
return False
result = tweets[tweets['content'].apply(is_invalid)][['tweet_id']]
return result.sort_values('tweet_id').reset_index(drop=True)