博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】640. Solve the Equation
阅读量:6835 次
发布时间:2019-06-26

本文共 1836 字,大约阅读时间需要 6 分钟。

题目如下:

解题思路:本题的思路就是解析字符串,然后是小学时候学的解方程的思想,以"2x+3x-6x+1=x+2",先把左右两边的x项和非x项进行合并,得到"-x+1=x+2",接下来就是移项,把x项移到左边,常数项移到右边,得到"2x=-1",最后的解就是x=-1/2。对于任意一个表达式ax+b = cx+d来说,最终都能得到解x=(d-b)/(a-c),这里要对(a-c)是否为0做判断,同时根据(d-b)是否为0等到Infinite solutions,No solution,常规解三种结果。

代码如下:

class Solution(object):    def parse(self,expression):        x,v = 0,0        if expression[0] == '-':            expression = '0' + expression        item = ''        operators = ['+', '-']        operator = ''        for i in (expression + '#'):            if i in operators or i == '#':                if item == 'x':                    item = '1x'                if operator == '':                    operator = i                    if item[-1] == 'x':                        x = int(item[:-1])                    else:                        v = int(item)                    item = ''                else:                    if operator == '+' and item[-1] == 'x':                        x += int(item[:-1])                    elif operator == '-' and item[-1] == 'x':                        x -= int(item[:-1])                    elif operator == '+' and item[-1] != 'x':                        v += int(item)                    else:                        v -= int(item)                    item = ''                    operator = i            else:                item += i        return x,v    def solveEquation(self, equation):        """        :type equation: str        :rtype: str        """        left,right = equation.split('=')        lx,lv = self.parse(left)        rx,rv = self.parse(right)        if lx - rx == 0 and rv - lv == 0:            return "Infinite solutions"        elif lx - rx == 0 and rv - lv != 0:            return "No solution"        else:            return "x=" + str((rv - lv)/(lx - rx))

 

转载于:https://www.cnblogs.com/seyjs/p/9660467.html

你可能感兴趣的文章
python操作excel小试牛刀
查看>>
vue通俗易懂的子组件向父组件传值
查看>>
加密传输SSL协议1_OpenSSL的安装
查看>>
Javascript Array Functions --Js 数组方法汇总
查看>>
挂载本地file到容器中
查看>>
【CodeForces】901 B. GCD of Polynomials
查看>>
滑雪(简单dp)
查看>>
宜立方 电商网站 -- 问题集合
查看>>
MySQL回顾(2)
查看>>
Centos6.10安装tomcat
查看>>
前端性能优化
查看>>
php 定向跳转方法
查看>>
ionic 2 起航 控件的使用 客户列表场景(二)
查看>>
0321《构建之法》现代软件工程第1、2、3章读后感
查看>>
laravel5通过auth.attempt事件加入登陆验证码
查看>>
C#制作自定义安装程序
查看>>
Azkaban 使用问题及解决(一)
查看>>
做一个完整的项目需要技能
查看>>
C#基础笔记(第十五天)
查看>>
新飞电器的BI建设案例
查看>>