【发布时间】:2018-07-02 05:32:17
【问题描述】:
如何比较任意两个后缀表示的表达式的等价性?
在最简单的例子中,foo(a, b) 返回 True
a = [3, 5, 'MUL']
b = [5, 3, 'MUL']
foo() 在 python 中会是什么样子?我想一种方法是评估这两个表达式并以某种方式对其进行规范化。我希望这是一个定义明确的过程,但还没有找到。
编辑 1:
这是一个措辞不当的问题。我会尝试更好/更多的例子,感谢您的耐心,因为我会尝试清楚准确地提出问题。
expr1 = [a, b, 'MUL']
expr2 = [b, a, 'MUL']
或
expr1 = [a, b, 1, 'ADD', 'MUL']
expr2 = [a, b, 'MUL', a, 'ADD']
【问题讨论】:
-
你有计算符号的函数吗?还是您在这里也请人帮您创建代码?
-
我有代码来评估后缀表达式。如果有用,请添加到原始问题。
-
你能添加更多例子吗?
-
根据一组可能参数的输出评估表达式并确定等效性似乎并不可靠(而且我没有什么可以支持该声明)。如果我有很多这样的比较要做,那么添加更多的评估会增加它所花费的时间。还有其他方法可以考虑这个问题/解决方案吗?
标签: python postfix-notation rpn