从右括号中的表达式转换为全括号中的表达式

时间:2019-02-14 18:37:01

标签: java

我正在处理一个分配,其中一个问题涉及输入右括号中的表达式,并输出其相应的全括号中的表达式。我无法理解如何构造程序的逻辑。

例如,一个输入表达式如1 + 2)/ 3 + 4))将输出((1 + 2)/(3 + 4)),这很容易理解,但我不确定如何可以实现这一点,以及更复杂的输入。

我知道要存储/调用操作数和运算符,我应该使用堆栈,并且可以看到,如果输入中的运算量和右括号不相等,则输入无效。我不明白的是我将如何在正确的位置打印左括号。

我们得到的一个提示是,每个步骤都是(x op y)形式,其中每个x和y可以是另一个(x op y)等。我知道它是如何工作的,但是我不明白如何使用它来找出左括号的位置。

我不是在寻找特定的代码解决方案,而是在寻找一些如何指出左括号放在何处的指针。由于输入的形式为(x op y),并且每个x和y都可以分解为进一步的(x op y)操作,因此我假设我必须使用递归。如何使用它将左括号放在正确的位置?

0 个答案:

没有答案