如何用Java实现对比两个复杂的四则运算公式的对比?
如:
简单的:A+B+C 和 A+C+B 返回结果是相同
复杂点的: A+B×(C-D) 和 A+B×C-B×D 返回结果是相同
类似于这样的公式对比,其中涉及括号,同级计算顺序等等
实现算法呗,定义一些规则
把所有的算式先转换成标准的形式,标准形式可以定义为:
表达式不带括号,所有有括号的全部展开,高优先级运算放在前面,同级运算,按照每个变量的ascii字符串顺序排列。
然后两个算式经过标准化后,如果相同,就是原来的公式相同,否则就是不同。