首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >求出数学方程中的表达式

求出数学方程中的表达式
EN

Stack Overflow用户
提问于 2019-06-24 06:17:45
回答 1查看 48关注 0票数 0

我在一个类似于(((2+1)*(4+5))/2)的文件中得到了一个等式。我要找的是里面不同的数学表达式。在本例中:2+1 4+5 (2+1)*(4+5),最后是((2+1)*(4+5))/2

我从卢金斯开始在这些How can I split a string of a mathematical expressions in python?,但无法找到一个解决方案。

你能帮帮我吗。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-24 06:33:02

您可以通过迭代字符串来创建一个简单的解析器,每次您找到一个开口括号时,将索引推送到堆栈中。当您找到一个结束括号时,弹出堆栈中的最后一件东西,并从其中拿出一片到您现在所在的位置:

代码语言:javascript
复制
stack = []
s = "(((2+1)*(4+5))/2)"
for i, c in enumerate(s):
    if c == "(":
        stack.append(i+1)
    if c == ")":
        f = stack.pop()
        print(s[f:i])

结果

代码语言:javascript
复制
2+1
4+5
(2+1)*(4+5)
((2+1)*(4+5))/2

如果pop()无法工作,或者在完成时堆栈中还保留了一些东西,则可以充实- this以进行错误检查。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56730777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档