模拟,即题目给定规则,要求找到符合条件的解。
以算数计算题为例,求解模拟题的过程。
640.求解方程
Problem: 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 <= 1000equation只有一个'='.- 方程由绝对值在
[0, 100]范围内且无任何前导零的整数和变量'x'组成。​​​
思路
模拟题,分别对运算符进行判断,找出跟解相关的x和num的值,然后求解。
解题方法
‘+’和’-‘作为数值符号;’=’作为等式左边计算完毕的判断,然后把’x’和’num’的符号取反然后继续运算;’x’如果没有数字要记作1;最后的答案对’x’的值和’num’的值判断即可。
复杂度
时间复杂度:
跟方程表达式的长度相关,$O(n)$空间复杂度:
$O(n)$。如果用 .charAt() 可以降为$O(1)$
- Code
1 | class Solution { |