首页 前端知识 Python 字符串最长合法简单数学表达式,字符串长度最长的并计算表达式的值,若没有则返回0,表达式只能有0-9,符号 -*

Python 字符串最长合法简单数学表达式,字符串长度最长的并计算表达式的值,若没有则返回0,表达式只能有0-9,符号 -*

2024-04-18 18:04:58 前端知识 前端哥 378 767 我要收藏
```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
标签
评论
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!