我对社区颇为陌生,但我在这里看到了一些有用的帖子,所以我想我会问。递归验证字符串是否是有效的前缀表达式?
我有一门功课疑问,要求我们递归查询给定的字符串是否是由以下两个规则(标准)给出一个有效的前缀表达式:
- 变量(亚利桑那州)的前缀表达式
- 如果o是一个二元运算符和F和E是前缀表达式,OFE
现在,我种得到的评价,并看了看前缀至缀算法,但我不能为我的生活想出了如何实施评估方法ds(因为我只需要检查它是否有效,所以不是+ a-b)。
我知道这些问题的大部分实现是使用堆栈完成的,但我没有看到我将如何递归地在这里执行......有些帮助将得到极大的赞赏。
谢谢你的子,这是令人难以置信的写得很好,我打自己没有思考它像早先(虽然这是一种强力方法,我们的教授对效率非常挑剔......尽管我会漠视这个特殊问题)。然而,尽管我已经实现了一些在纸上签出的东西,但似乎有一个我无法发现的轻微缺陷。这里是代码片段:http://pastebin.com/Lk5mHM7R 我明白如果你有更好的事情要做,我会在此期间继续调试。 – user991710
@ uer991710将大括号括在第一个if,else else {}语句绑定到if(in.equals(vars [i]))而不是if(in.length()== 1)。我强烈建议在您的IDE中启用代码格式,因为它可以更容易地检测到。 –
我不敢相信我错过了。我试图保存几行,并且必须忘记,其他内容仅适用于最近的'if'。我最近一直在阅读一些Python,所以我必须有一个关于缩进的大脑放屁。然而,关于格式化的要点。谢谢。 – user991710