#2118
Hard Database Build the equation
Database
57.0% acceptance
Mar 31, 2026
24
38
No description available.
Solution
Pandas
Time O(n)
Space O(1)
# Table: Terms
#
# +-------------+------+
# | Column Name | Type |
# +-------------+------+
# | power | int |
# | factor | int |
# +-------------+------+
# power is the column with unique values for this table.
# Each row of this table contains information about one term of the equation.
# power is an integer in the range [0, 100].
# factor is an integer in the range [-100, 100] and cannot be zero.
#
#
#
# You have a very powerful program that can solve any equation of one variable in the world. The equation passed to the program must be formatted as follows:
#
# The left-hand side (LHS) should contain all the terms.
#
# The right-hand side (RHS) should be zero.
#
# Each term of the LHS should follow the format "<sign><fact>X^<pow>" where:
#
# <sign> is either "+" or "-".
#
# <fact> is the absolute value of the factor.
#
# <pow> is the value of the power.
#
# If the power is 1, do not add "^<pow>".
#
# For example, if power = 1 and factor = 3, the term will be "+3X".
#
# If the power is 0, add neither "X" nor "^<pow>".
#
# For example, if power = 0 and factor = -3, the term will be "-3".
#
# The powers in the LHS should be sorted in descending order.
#
# Write a solution to build the equation.
#
# The result format is in the following example.
#
# Example 1:
# Input:
# Terms table:
# +-------+--------+
# | power | factor |
# +-------+--------+
# | 2 | 1 |
# | 1 | -4 |
# | 0 | 2 |
# +-------+--------+
# Output:
# +--------------+
# | equation |
# +--------------+
# | +1X^2-4X+2=0 |
# +--------------+
#
# Example 2:
# Input:
# Terms table:
# +-------+--------+
# | power | factor |
# +-------+--------+
# | 4 | -4 |
# | 2 | 1 |
# | 1 | -1 |
# +-------+--------+
# Output:
# +-----------------+
# | equation |
# +-----------------+
# | -4X^4+1X^2-1X=0 |
# +-----------------+
import pandas as pd
def build_the_equation(terms: pd.DataFrame) -> pd.DataFrame:
terms = terms.sort_values('power', ascending=False)
parts = []
for _, row in terms.iterrows():
p, f = int(row['power']), int(row['factor'])
sign = '+' if f > 0 else '-'
af = abs(f)
if p == 0:
parts.append(f'{sign}{af}')
elif p == 1:
parts.append(f'{sign}{af}X')
else:
parts.append(f'{sign}{af}X^{p}')
equation = ''.join(parts) + '=0'
return pd.DataFrame({'equation': [equation]})