comments | difficulty | edit_url | tags | |
---|---|---|---|---|
true |
困难 |
|
表: Terms
+-------------+------+ | Column Name | Type | +-------------+------+ | power | int | | factor | int | +-------------+------+ power 是该表具有唯一值的列。 该表的每一行包含关于方程的一项的信息。 power 是范围为 [0, 100] 的整数。 factor 是范围为 [-100,100] 的整数,且不能为零。
你有一个非常强大的程序,可以解决世界上任何单变量的方程。传递给程序的方程必须格式化如下:
- 左边 (LHS) 应该包含所有的术语。
- 右边 (RHS) 应该是零。
- LHS 的每一项应遵循
"<sign><fact>X^<pow>"
的格式,其中:<sign>
是"+"
或者"-"
。<fact>
是factor
的 绝对值。<pow>
是power
的值。
- 如果幂是
1
, 不要加上"^<pow>"
.- 例如, 如果
power = 1
并且factor = 3
, 将有"+3X"
。
- 例如, 如果
- 如果幂是
0
, 不要加上"X"
和"^<pow>"
.- 例如, 如果
power = 0
并且factor = -3
, 将有"-3"
。
- 例如, 如果
- LHS 中的幂应该按 降序排序。
编写一个解决方案来构建方程。
结果格式如下所示。
示例 1:
输入: Terms 表: +-------+--------+ | power | factor | +-------+--------+ | 2 | 1 | | 1 | -4 | | 0 | 2 | +-------+--------+ 输出: +--------------+ | equation | +--------------+ | +1X^2-4X+2=0 | +--------------+
示例 2:
输入: Terms 表: +-------+--------+ | power | factor | +-------+--------+ | 4 | -4 | | 2 | 1 | | 1 | -1 | +-------+--------+ 输出: +-----------------+ | equation | +-----------------+ | -4X^4+1X^2-1X=0 | +-----------------+
扩展: 如果幂函数不是主键,但每个幂函数在答案中都是唯一的,那么解决方案中需要改变什么?
# 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;