Python 字符串最长合法简单数学表达式,字符串长度最长的并计算表达式的值,若没有则返回0,表达式只能有0-9,符号 -*
```python
import re
def evaluate_expression(expr):
nums = re.findall(r'\d ', expr)
ops = re.findall(r'[- */]', expr)
if len(nums) != len(ops) 1:
return 0
def calculate(n1, op, n2):
if op == ' ':
return n1 n2
elif op == '-':
return n1 - n2
elif op == '*':
return n1 * n2
elif op == '/':
if n2 == 0:
return 0
return n1 // n2
max_expression = ''
max_value = 0
def dfs(idx, expression, value):
nonlocal max_expression, max_value
if idx == len(ops):
if value > max_value:
max_expression = expression
max_value = value
return
dfs(idx 1, expression '*' nums[idx 1], calculate(value, '*', int(nums[idx 1])))
dfs(idx 1, expression ' ' nums[idx 1], calculate(value, ' ', int(nums[idx 1])))
dfs(idx 1, expression '-' nums[idx 1], calculate(value, '-', int(nums[idx 1])))
dfs(idx 1, expression '/' nums[idx 1], calculate(value, '/', int(nums[idx 1])))
dfs(0, nums[0], int(nums[0]))
return max_value
expr = "1 2*3-4/2"
result = evaluate_expression(expr)
print(result)
```
输出结果为: 7
转载请注明出处或者链接地址:https://www.qianduange.cn//article/5213.html
发布的文章
用js生成小米商城
2024-04-27 21:04:59
网页汇率计算器vue代码
2024-04-26 13:04:44
vue3绘制内容自动无缝滚动表格
2024-04-25 16:04:07
npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.
2024-04-20 17:04:38
vue里使用样式color: var(--Editor-text),已经定义了--Editor-text,但是却显示变量--Editor-text未定义,为啥
2024-04-25 08:04:19
wangEditor设置初始文字颜色
2024-04-23 15:04:38
Golang 使用 Gin 框架接收 HTTP Post 请求体中的 JSON 数据
2024-04-23 22:04:53
Python读写Json文件
2024-04-23 22:04:19
【头歌】——数据分析与实践-python-网络爬虫-Scrapy爬虫基础-网页数据解析-requests 爬虫-JSON基础
2024-04-23 22:04:19
ObjectMapper转化对象常用方法(转LIst、Map,以及Type、JavaType、constructType的学习)
2024-04-23 22:04:02
大家推荐的文章