Welcome to Subscribe On Youtube

2118. Build the Equation

Description

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 | +-----------------+ 

 

Follow up: What will be changed in your solution if the power is not a primary key but each power should be unique in the answer?

Solutions

  • # Write your MySQL query statement below WITH T AS ( SELECT power, CASE power WHEN 0 THEN IF(factor > 0, CONCAT('+', factor), factor) WHEN 1 THEN CONCAT( IF(factor > 0, CONCAT('+', factor), factor), 'X' ) ELSE CONCAT( IF(factor > 0, CONCAT('+', factor), factor), 'X^', power ) END AS it FROM Terms ) SELECT CONCAT(GROUP_CONCAT(it ORDER BY power DESC SEPARATOR ""), '=0') AS equation FROM T; 

All Problems

All Solutions