【LeetCode】【字符串】题号:*640. 求解方程

every blog every motto: You will never know unless you try

0. 前言

冲冲冲

1. 字符串

在这里插入图片描述

1.1 题目

在这里插入图片描述

1.2

class Solution:
    def solveEquation(self, equation: str) -> str:

        def num_x(eq):
            nums = 0  # 左边数字的和
            x_nums = 0  # 左边x数字的和

            # 字符转列表
            eq = eq.split('+')

            for ele in eq:
                if len(ele)<1:
                    continue
                if 'x' not in ele:
                    # 如果是正数相加
                    if '-' not in ele:
                        nums += int(ele)
                    # 如果是负数
                    else:
                        nums -= int(ele[1:])
                # 如果含有x项
                else:
                    # 如果为x
                    if len(ele) == 1:
                        x_nums += 1
                    elif len(ele)>=2 and '-' not in ele:
                        x_nums += int(ele[:-1])
                    # 如果为-x -3x
                    elif '-' in ele:
                        
                        if len(ele) == 2:
                            x_nums -= 1
                        else:
                            x_nums -= int(ele[1:-1])
                        # elif len(ele) == 3:
                        #     x_nums -= int(ele[1])
            return nums, x_nums

        # '-' -> '+-'
        equation = equation.replace('-', '+-')

        # print(equation)
        left_eq, right_eq = equation.split('=')
        print(left_eq, right_eq)

        # 等式左边
        left_nums, left_x = num_x(left_eq)
        rigth_numx, right_x = num_x(right_eq)
        print('数字 , x')
        print(left_nums, left_x)
        print(rigth_numx, right_x)

        # x 放到等式左边
        x = left_x - right_x
        # 数字放到等式右边
        nums = rigth_numx - left_nums
        print('最终',x,nums)
        if x != nums and x==0:
            return 'No solution'
        elif x == nums and x == 0:
            return 'Infinite solutions'
        else:
            return  'x=' + str(nums//x)

    

1.3

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡侃有料

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值