![]() |
1
13
算法非常简单(而且 here is a good explanation )每个操作都有一个绑定权重,其中+和-是最低的。有两条规则:
给出第一个例子52+(1+2)*4-3,下面是堆栈:
将开关回路替换为以下(与您所拥有的最接近的模拟回路)将为您的三个示例提供正确的答案。在一个真正的解析器中,您将给每个操作符一个权重并概括pop机制。
|
![]() |
2
2
不是对特定问题的确切答案,但我建议开发这些算法:看看测试驱动开发(TDD)。简而言之:为infix2方法编写两个单元测试(例如,使用junit),如果infix2生成正确的输出,则使用测试模式(表达式)和测试来填充该方法。 从简单的开始,比如
别忘了像这样的非法表达
您示例的测试用例应该是
|
|
user29759326 · 如何返回递归函数中的最后一个值? 3 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 3 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 3 月前 |
![]() |
rudraraj · java中未声明最终变量 4 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 4 月前 |