我正在创建计算器应用程序,它将输入表达作为输入,单击“=”按钮应用程序将解决表达式并在无效表达的情况下给出结果或错误。
到目前为止,我已设法使用堆栈和解决表达式将中缀转换为后置修复,但其限制是它只需要一个数字作为操作数。
示例:
1 + 2(3 * 3)-4 ^ 2 //工作
11 + 2(13 * 3)-4 ^ 20 //无法正常工作
1.2 + 2.4(10.5 * .5)-4 ^ 2 //无法正常工作
input是字符串表达式,在计算时我们必须遵循BODMAS规则,并且必须从左到右评估具有相同优先级的运算符。
任何人都可以让我深入了解如何解决这个问题吗?我应该使用哪些算法?处理不同边缘情况的最有效方法是什么?链接到一个工作示例。
答案 0 :(得分:0)
我在号码后面加了一个空格,而转换时我正在等待一个空格来确定该号码是否完整。通过这种方式,我能够解决这个问题。 You can check this code if you want.