我需要算法来检查给定的表达式是否为中缀,后缀或前缀表达式。 我通过检查字符串的第一个或最后两个术语来尝试一种方法,例如
+ AB如果在第一个字符串索引中有一个运算符,那么它的前缀是
AB +如果在字符串的最后一个索引中有一个运算符,那么它 后缀
否则它是中缀。
但它感觉不合适,所以请建议我一个更好的算法。
答案 0 :(得分:1)
请注意,(3)包括您在括号中的表达式的注释中提到的情况。前缀或后缀中没有括号。这就是他们存在的原因。 (3)还包括单个术语的简并情况,例如: 1
,但在这种情况下,解析它并不重要。
您只能通过完全解析来检测无效表达式。
如果您允许使用中缀符号表示一元运算符,我只能建议您尝试所有三个解析并在获得成功时停止。很可能这是你应该遵循的策略。