LeetCode算法日记:640. 求解方程

640. 求解方程

日期:2022/8/10

题目描述:求解一个给定的方程,将x以字符串 “x=#value” 的形式返回。该方程仅包含 ‘+’ , ‘-’ 操作,变量 x 和其对应系数。

如果方程没有解,请返回 “No solution” 。如果方程有无限解,则返回 “Infinite solutions” 。

题目保证,如果方程中只有一个解,则 ‘x’ 的值是一个整数。

示例:

输入: equation = "x+5-3+x=6+x-2"
输出: "x=2"

输入: equation = "x=x"
输出: "Infinite solutions"

输入: equation = "2x=x"
输出: "x=0"

思路:

移项,定义k=0,b=0,kx=b(最后return b/k)
遍历equation,有下面四种情况
1.遇到=,从等式左边变到等式右边。用right来记录。等式两边的符号运算时是相反的
2.遇到数字,这时候有两种可能:后面带x、后面不带x。先while循环记录这个数字,再根据后面有没有x,来改变k或者b
3.遇到x,此时x的系数是1或-1
4.遇到符号,用symbol来记录当前符号,以便在后续的步骤2或3中计算

最后输出:k=0时肯定是无效的,但是b=0的话就是"Infinite solution",b!=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值