我有一个要求,我要简化方程式。
我输入了,
a + b *((c+d)(e+f))+x
我要将公式简化为a + bce + bcf + bde + bdf + x
请注意,不会分配数值。我将简化字符串方程,并以完全如上所示的方程变量的形式得到结果。
目前,我制作了一种堆栈结构,我一直在推动每个角色,直到遇到“+”。一旦我这样做,我从底部到顶部转储所有变量并从堆栈中删除元素,直到我得到前一个开始括号(在堆栈上。我这样做,直到我得到一个结束括号,我删除所有内容,直到我得到一个在关闭之前打开支架。
然而,当我有类似(a+b)(e+f)
之类的东西时会出现麻烦。我无法想出任何逻辑来做到这一点。另外,我对如何处理冗余括号感到无能为力,例如((a+b))
有人可以帮忙解决这个问题吗?