首页 > 其他分享 >640. 求解方程(中)

640. 求解方程(中)

时间:2024-04-10 11:26:16浏览次数:19  
标签:方程 cur 求解 neg equation 640 字符串 left

目录

题目

  • 求解一个给定的方程,将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"

示例 2:

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

题解:模拟

class Solution:
    def solveEquation(self, equation: str) -> str:
        # 化为 kx = b 的形式
        left, k, b, neg = 1, 0, 0, 1 #left控制方程左右、未知数的系数、常数项和符号
        cur = ""  # 当前数字字符串
        for e in equation:# 遍历方程字符串
            if e == 'x':# 处理未知数系数
                num = int(cur) if cur else 1#将当前数字字符串转换为整数,如果为空则默认为1
                k += left * neg * num  # 更新未知数系数
                cur = ""  # 重置当前数字字符串
            elif e in "+-=":
                if cur:# 处理常数项和符号
                    num = int(cur)
                    b += -left * neg * num  #b的值放右边,处理等号左边时left取-
                if e == '=':
                    left = -1  #b的值放右边,处理等号右边时left取--为+
                    neg = 1
                elif e == '-':
                    neg = -1  #-号时neg设为-1
                else:
                    neg = 1   #+号时neg设为1
                cur = ""
            else:   #不是x和+-=,是数字时候放进cur
                cur += e
        if cur:  # 处理剩余的数字字符串
            b += -left * neg * int(cur) #将剩余的数字字符串转换为整数并更新常数项
        if k == 0:
            return "Infinite solutions" if b == 0 else "No solution"
        return f"x={b // k}"# 有唯一解

标签:方程,cur,求解,neg,equation,640,字符串,left
From: https://www.cnblogs.com/lushuang55/p/18125639

相关文章

  • EG25H4偏微分方程的解决方案
    EG25H4–CA2–偏微分方程的解决方案学生应独立准备解决指定问题的方案问题。提交的稿件,连同抄袭封面,应上传至2024年4月19日(星期五)下午5点(英国夏令时)前抵达MyAberdeen。请注意在截止日期后收到的未经授权的提交文件将受到逾期罚款,因为根据大学关于未经授权逾期提交的处罚政策课程。......
  • 数码管显示屏驱动芯片VK1640 SOP28,2线串行接口,适用于小型LED显示屏驱动
    产品品牌:永嘉微电/VINKA产品型号:VK1640封装形式:SOP28概述VK1640是一种数码管或点阵LED驱动控制专用芯片,内部集成有数据锁存器、LED驱动等电路。SEG脚接LED阳极,GRID脚接LED阴极,可支持8SEGx16GRID的点阵LED显示。适用于小型LED显示屏驱动。采用SOP28的封装形式。LJQ336特点•......
  • 牛顿法近似求解
    牛顿法牛顿法使用方程\(f(x)\)的泰勒级数的前几项来寻找\(f(x)=0\)的解。首先选择一个接近\(f(x)\)零点的横坐标\(x_0\),计算\(f(x_0)\)及其斜率\(f'(x_0)\),穿过点\((x_0,f(x_0))\)以斜率\(f'(x_0)\)做一条直线,获得直线与x轴交点\(x_1\),通常\(x_1\)会比\(x_0......
  • “最新趋势:R语言lavaan结构方程模型(SEM)的实践应用与技巧”
    结构方程模型(SructuralEquationModeling,SEM)是分析系统内变量间的相互关系的利器,可通过图形化方式清晰展示系统中多变量因果关系网,具有强大的数据分析功能和广泛的适用性,是近年来生态、进化、环境、地学、医学、社会、经济等众多领域应用十分广泛的统计方法。在R语言结构方程程......
  • 【Java业务需求解决方案】分布式锁应用详情,多种方案选择,轻松解决,手把手操作(非全数
    目录背景:解决方案:分布式锁方案一(不建议,但原理得懂):Redis锁setnx与业务代码处理雏形代码产生问题一:锁释放问题代码改造:锁添加过期时间产生问题二:锁被别的线程误删代码改造:添加setnx锁请求标识防勿删产生问题三:递归容易造成内存溢出代码改造:递归改造while循环产生......
  • 如何进行快速求解大数是否是11的倍数证明(如果奇数位数字和与偶数位数字和的差是11的倍
    当一个数的奇数位上数字和与偶数位上数字和的差是11的倍数时,这个数就是11的倍数。这个性质可以通过数学归纳法和模运算的性质来证明。观察模运算的性质首先,观察到对于任意正整数k,10^k对11取模的结果是循环的:......
  • FJSP:蜣螂优化算法( Dung beetle optimizer, DBO)求解柔性作业车间调度问题(FJSP),提供MAT
    一、柔性作业车间调度问题柔性作业车间调度问题(FlexibleJobShopSchedulingProblem,FJSP),是一种经典的组合优化问题。在FJSP问题中,有多个作业需要在多个机器上进行加工,每个作业由一系列工序组成,每个工序需要在特定的机器上完成。同时,每个机器一次只能处理一个工序,且每个工......
  • FJSP:霸王龙优化算法(Tyrannosaurus optimization,TROA)求解柔性作业车间调度问题(FJSP),提供
    一、柔性作业车间调度问题柔性作业车间调度问题(FlexibleJobShopSchedulingProblem,FJSP),是一种经典的组合优化问题。在FJSP问题中,有多个作业需要在多个机器上进行加工,每个作业由一系列工序组成,每个工序需要在特定的机器上完成。同时,每个机器一次只能处理一个工序,且每个工......
  • 复数范围内解方程
    前言相关知识【初中总结】实数系数的一元二次方程\(ax^2+bx+c=0\quad(a\neq0)\),当\(\Delta\geqslant0\)时,在实数范围内有实数根,其求根公式为\(x=\cfrac{-b\pm\sqrt{b^2-4ac}}{2a}\);根与系数的关系为\(x_1+x_2=-\cfrac{b}{a}\),\(x_1\cdotx_2=\cfrac{c}{a}\);当\(\Delta......
  • 算法学习笔记——暴力求解之枚举
    算法学习笔记——暴力求解之枚举枚举枚举是指对每个可能的解进行逐一判断,直到找到符合题目要求的答案。枚举类的题目本身并不复杂,但在采取枚举策略之前,一定要好好的分析题目的枚举量,枚举量过大的时候,需要选择其他的解决方法。即使问题适合枚举,也要进行分析,以便通过减少部分无效......