class Solution {
public:
string solveEquation(string equation) {
}
};
640. 求解方程
求解一个给定的方程,将x
以字符串 "x=#value"
的形式返回。该方程仅包含 '+'
, '-'
操作,变量 x
和其对应系数。
如果方程没有解,请返回 "No solution"
。如果方程有无限解,则返回 “Infinite solutions”
。
如果方程中只有一个解,要保证返回值 'x' 是一个整数。
示例 1:
输入: equation = "x+5-3+x=6+x-2" 输出: "x=2"
示例 2:
输入: equation = "x=x" 输出: "Infinite solutions"
示例 3:
输入: equation = "2x=x" 输出: "x=0"
提示:
3 <= equation.length <= 1000
equation
只有一个 '='
.equation
方程由整数组成,其绝对值在 [0, 100]
范围内,不含前导零和变量 'x'
。 相似题目
原站题解
python3 解法, 执行用时: 32 ms, 内存消耗: 14.8 MB, 提交时间: 2022-08-10 14:21:22
class Solution: def solveEquation(self, equation: str) -> str: factor = val = 0 i, n, sign = 0, len(equation), 1 # 等式左边默认系数为正 while i < n: if equation[i] == '=': sign = -1 i += 1 continue s = sign if equation[i] == '+': # 去掉前面的符号 i += 1 elif equation[i] == '-': s = -s i += 1 num, valid = 0, False while i < n and equation[i].isdigit(): valid = True num = num * 10 + int(equation[i]) i += 1 if i < n and equation[i] == 'x': # 变量 factor += s * num if valid else s i += 1 else: # 数值 val += s * num if factor == 0: return "No solution" if val else "Infinite solutions" return f"x={-val // factor}"