Skip to main content
Back to problems
#2339
Easy Database

All the matches of the league

Database
88.6% acceptance
Mar 31, 2026
49
4

No description available.

Solution

Pandas
Time O(1)
Space O(1)
LeetCode
solution.pandas
# Table: Teams
# 
# +-------------+---------+
# | Column Name | Type    |
# +-------------+---------+
# | team_name   | varchar |
# +-------------+---------+
# team_name is the column with unique values of this table.
# Each row of this table shows the name of a team.
# 
#  
# 
# Write a solution to report all the possible matches of the league. Note that every two teams play two matches with each other, with one team being the home_team once and the other time being the away_team.
# 
# Return the result table in any order.
# 
# The result format is in the following example.
#
# Example 1:
# Input:
# Teams table:
# +-------------+
# | team_name   |
# +-------------+
# | Leetcode FC |
# | Ahly SC     |
# | Real Madrid |
# +-------------+
# Output:
# +-------------+-------------+
# | home_team   | away_team   |
# +-------------+-------------+
# | Real Madrid | Leetcode FC |
# | Real Madrid | Ahly SC     |
# | Leetcode FC | Real Madrid |
# | Leetcode FC | Ahly SC     |
# | Ahly SC     | Real Madrid |
# | Ahly SC     | Leetcode FC |
# +-------------+-------------+
# Explanation: All the matches of the league are shown in the table.

import pandas as pd

def find_all_matches(teams: pd.DataFrame) -> pd.DataFrame:
  result = teams.merge(teams, how='cross', suffixes=('_home', '_away'))
  result = result[result['team_name_home'] != result['team_name_away']]
  result.columns = ['home_team', 'away_team']
  return result