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

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

2024-04-18 18:04:58 前端知识 前端哥 376 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
标签
评论
发布的文章

用js生成小米商城

2024-04-27 21:04:59

网页汇率计算器vue代码

2024-04-26 13:04:44

Python读写Json文件

2024-04-23 22:04:19

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