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)