擅长:python、mysql、java
<p>在对符号进行操作之前,需要更多的处理。您想要得到的表单是一个在叶节点中有值的操作树。首先,您需要在字符串上运行lexer来获取元素-尽管如果总是使用空格分隔的元素,那么只需拆分字符串就足够了。然后,您需要使用所需的语法来解析该标记数组。在</p>
<p>如果您需要有关语法和解析文本的理论信息,请从这里开始:<a href="http://en.wikipedia.org/wiki/Parsing" rel="nofollow noreferrer">http://en.wikipedia.org/wiki/Parsing</a>如果您需要更实际的东西,请转到<a href="https://github.com/pyparsing/pyparsing" rel="nofollow noreferrer">https://github.com/pyparsing/pyparsing</a>(您不必使用pyparsing模块本身,但是它们的文档有很多有趣的信息)或<a href="http://www.nltk.org/book" rel="nofollow noreferrer">http://www.nltk.org/book</a></p>
<p>从<code>2 * ( ( 9 / 6 ) + 6 * x )</code>开始,您需要到达如下树:</p>
<pre><code> *
2 +
/ *
9 6 6 x
</code></pre>
<p>然后您可以访问每个节点并决定是否要简化它。常量操作将是最简单的消除方法-只需计算结果并用1.5交换“/”节点,因为所有子节点都是常量。在</p>
<p>有很多策略需要继续,但本质上你需要找到一种方法来遍历树并对其进行修改,直到没有什么可以改变的。在</p>
<p>如果要打印结果,只需再次遍历树并生成一个表达式来描述它。在</p>