首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查给定表达式是infix表达式、后缀表达式还是前缀表达式?

如何检查给定表达式是infix表达式、后缀表达式还是前缀表达式?
EN

Stack Overflow用户
提问于 2016-10-03 01:51:00
回答 2查看 2.1K关注 0票数 2

我需要算法来检查给定表达式是infix、后缀还是前缀表达式。我尝试了一种方法,检查字符串的第一个或最后两个项。

+AB如果字符串的第一个索引中有一个运算符,那么它就是一个前缀 AB+如果字符串的最后一个索引中有一个操作符,那么它就是一个后缀。 否则就成了替罪羊。

但我觉得不太合适,所以请给我一个更好的算法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-06 00:55:48

  1. 如果它以一个有效的infix操作符开头,那么它就是infix,除非您要允许一元运算符。
  2. 如果它以有效的后缀操作符结尾,则为后缀。
  3. 否则,它要么是infix,要么无效。

请注意,(3)包括括号中表达式的注释中提到的情况。前缀或后缀中没有括号。这就是他们存在的原因。(3)还包括单个术语的简并情况,例如1,但在这种情况下,如何解析它并不重要。

您只能通过完全解析一个无效的表达式来检测它。

如果要允许一元运算符使用内固定符号,我只能建议您尝试所有三个解析,并在成功时停止。很可能这就是你应该遵循的策略。

票数 1
EN

Stack Overflow用户

发布于 2021-12-10 23:56:10

检查字符串中的第一个元素。1-如果第一个元素是运算符,那么它是用于确定前缀表达式2- for,检查第二个元素,如果它是运算符,那么它是肯定infix 3-否则,它是为确定后缀。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39823568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档