Given an expression string array, return the Polish notation of this expression. (remove the parentheses)
Aka, convert infix notation to prefix notation.
Example
For the expression [(5 − 6) * 7] (which represented by["(", "5", "−", "6", ")", "*", "7"]
), the corresponding polish notation is [* - 5 6 7] (which the return value should be["*", "−", "5", "6", "7"]
).
Clarification
Definition of Polish Notation:
public List<String> convertToPN(String[] expression) { Stack<String> operand = new Stack<>(); Stack<String> operator = new Stack<>(); for(int i=expression.length-1; i>=0; i--) { String s = expression[i]; if("+-*/".contains(s)) { // note: must be >, not >= while(!operator.isEmpty() && getPriority(operator.peek()) > getPriority(s)) { operand.push(operator.pop()); } operator.push(s); } else if(")".equals(s)) { operator.push(s); } else if("(".equals(s)) { while(!operator.peek().equals(")")) { operand.push(operator.pop()); } operator.pop(); } else { operand.push(s); } } while(!operator.isEmpty()) { operand.push(operator.pop()); } List<String> pn = new ArrayList<>(operand); Collections.reverse(pn); return pn; } private int getPriority(String s) { char c = s.charAt(0); if(c=='+' || c=='-') return 1; if(c=='*' || c=='/') return 2; return 0; }
相关推荐
netflix-infix-0.3.0.jar
标题和描述中提到的"notation-infix-postfix-prefix"是一个关于数学表达式表示法的转换话题,主要包括中缀表示(infix notation)、后缀表示(postfix notation)和前缀表示(prefix notation)。这些表示法在计算机...
问题描述 中缀表达式就是我们通常所书写的数学表达式,后缀表达式也称为逆波兰表达式,在编译程序对我们书写的程序中的表达式进行语法检查时,往往就可以通过逆波兰表达式进行。我们所要设计并实现的程序就是将...
《k-infix:通用的中缀解析库及基础数学表达式实现详解》 在计算机科学领域,表达式解析是一项至关重要的任务,它涉及到将人类可读的表达式转换为计算机可执行的形式。本文将深入探讨名为"k-infix"的开源项目,这是...
要运行演示: ./gradlew buildjava -jar build/libs/lucene-analyzing-infix-suggester-bug.jar异常显示为: Exception in thread "Thread-1" java.lang.RuntimeException: org.apache.lucene.store....
计算器这是我根据VidMob Engineering家庭练习指南开发的计算器。如何使用要求应该安装Python 3.x运行程序将所有文件存储在Calculator.zip中的相同位置运行Calculator.py 工作成功,您可以看到以下内容 请输入数学...
在计算机科学领域,中缀表达式(Infix notation)是一种常用的数学表达式表示方式,其中运算符位于操作数之间,例如 `2 + 3 * 4`。然而,这种表达式在计算机处理时存在一定的复杂性,因为它需要依赖括号来确定运算的...
infix to postfix using linked list
压缩包中的`p5-sub-infix-master`文件名可能表示这是模块的源代码仓库的主分支。 总的来说,`p5-sub-infix`是Perl 5编程的一个实用工具,它增强了语言的表达能力,使开发者能够创建更直观、更符合直觉的代码,尤其...
InfixToPostfix.java 前缀转中缀 java实现
中缀前缀后缀转换器 简单的C#-Win32-应用程序,可将Infix Prefix后缀表示法转换为 用于: Windows Phone 8.1-> Windows 8-> Android(Xamarin):
本项目"InfixToPostfix-master"是一个基于Java的实现,它利用了Java强大的面向对象特性和丰富的类库来构建这一转换工具。开发者可能使用了`Stack`类来实现运算符栈,通过遍历输入的中缀表达式字符串,按照上述算法...
如果输入表达式错误,则返回“WRONG EXPRESSION”。 返回输入的其他明智的中缀。 测试 输入:-- +a-bc/-de+-fgh 输出:-- (a+bc) ((de)/(f-g+h)) 输入:-- *+a-bc/-de+-fghi 输出:-- 错误的表达 输入 :-- *+a-bc...
本项目“Evaluating-Infix-Expressions-with-Swift”提供了一个解决方案,允许快速有效地评估中缀表达式。它可能包括一个解析器和一个计算引擎,用于将中缀表达式转换为可执行的形式,并返回结果。 首先,我们需要...
实现中缀表达式到后缀表达式的转换,为InfixToPostfix类实现convertExpr(String expression),其中参数expression为中缀表达式,其返回值为后缀表达式,最后将其输出到控制台即可。 中缀表达式符合人们平时的表达习惯
infix转POSTFIX算法 infix转POSTFIX算法
the first of them converts a funciton from infix to postfix. the second is derived from the firts, it evaluates the postfix exprecion. the 3rd & 4th draw the function in their canvas. the last one is...
#表示法树形图的前缀 该程序显示输入任何等式符号的树形图 用Java Swing API和AWT API制成 特征 自动在gui上绘制图形以显示方程式 Postifx表示法算法的中缀表示法 后缀表示法算法的前缀表示法 ...