【发布时间】:2021-12-11 03:56:05
【问题描述】:
我的递归函数接受此字符串的String prefix 和int index(最初为0)。
根据索引计算一个postfix 字符串。
Storage 是一个类,其中包含正在处理的前缀字符串的postfix 字符串和整数index。这个类的目的是我可以同时返回字符串和整数。
输入输出的另一个例子: | ^+-ABC+D-EF | AB-C+DEF-+^ |AB-A+AB-^ |
示例
| given input | desired output | current output |
|---|---|---|
| -+ABC | AB+C- | AB+A- |
| -A+BC | ABC+- | ABC+- |
问题
例如-+ABC我将得到AB+A-而不是预期的AB+C-,因为索引最后指向2而不是4。
它运行良好,只是在我调用底部的 return 之后索引从正确的值 3 变为 1。
}
任何关于纠正此问题的最佳方法的想法将不胜感激!
【问题讨论】:
-
不应该将
isOperand称为isOperator? -
你能发布一个输入的例子,期望的输出和结果的使用吗?
-
@PeterMmm 示例输入:-+ABC、-A+BC 和所需输出:AB+C-、ABC+- 和当前输出:AB+A-、ABC+-
-
@k314159 我不这么认为。如果它是一个操作数,则返回(基本情况),如果是运算符,则需要递归获取下两个可能是复杂操作数的操作数
-
我之前误解了 - 现在我明白
isOperand(char)仅在 char 为真时为真,例如“A”或“B”。这是一种转换为“反向波兰表示法”的方法,对吧?如果是这样,请添加标签 [postfix-notation] - 这将有助于人们理解并引入 postfix-notation 专家。
标签: java string recursion reverse postfix-notation