1. 程式人生 > >Java實現逆波蘭表示式(Evaluate Reverse Polish Notation)

Java實現逆波蘭表示式(Evaluate Reverse Polish Notation)

逆波蘭表示式 定義:傳統的四則運算被稱作是中綴表示式,即運算子實在兩個運算物件之間的。逆波蘭表示式被稱作是字尾表示式,表示式實在運算物件的後面。 逆波蘭表示式: a+b ---> a,b,+ a+(b-c) ---> a,b,c,-,+ a+(b-c)*d ---> a,b,c,-,d,*,+ a+d*(b-c)--->a,d,b,c,-,*,+ a=1+3 ---> a=1,3 + http=(smtp+http+telnet)/1024 寫成什麼呢? http=smtp,http,+,telnet,+,1024,/ 用Java實現逆波蘭表示式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 /** * 計算算數表示式的值 * For example: * ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9 * ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6 * @author zl * 思路: * 這個問題可以通過使用堆疊來解決。 * (1)我們可以迴圈遍歷給定陣列中的每個元素。 * (2)當它是一個數字,把它推到堆疊。 *  (3) 當它是一個操作符時,從堆疊中彈出兩個數字,進行計算,並推回結果。 * */ public
classEvaluateValueOfArithmeticExpression { privatestaticvoidevoe(String[] strArr){ String str = "+-*/"; Stack<String> stack = newStack<String>(); //2.0遍歷陣列中的每一個元素 for(String s : strArr){ if(!str.contains(s)){//如果是數字,放入棧中 stack.push(s); }else{ inta = Integer.valueOf(stack.pop());
intb = Integer.valueOf(stack.pop()); switch(s){ case"+": stack.push(String.valueOf(a+b)); break; case"-": stack.push(String.valueOf(b-a)); break; case"*": stack.push(String.valueOf(a*b)); break; case"/": stack.push(String.valueOf(b/a)); break; } } } System.out.println(stack.pop()); } publicstaticvoidmain(String[] args) { //1.0建立陣列 String [] strArr = { "0""2""-""3""+"}; evoe(strArr); }

相關推薦

Java實現波蘭表示式Evaluate Reverse Polish Notation

逆波蘭表示式 定義:傳統的四則運算被稱作是中綴表示式,即運算子實在兩個運算物件之間的。逆波蘭表示式被稱作是字尾表示式,表示式實在運算物件的後面。 逆波蘭表示式: a+b ---> a,b,+

LeetCode150.波蘭表示式求解Evaluate Reverse Polish Notation

題目描述 根據逆波蘭表示法,求表示式的值。 有效的運算子包括 +, -, *, / 。每個運算物件可以是整數,也可以是另一個逆波蘭表示式。 說明: 整數除法只保留整數部分。 給定逆波蘭表示式總是有效的。換句話說,表示式總會得出有效數值且不存在除數為 0 的情況。

求解波蘭表示式(Calculate the reverse Polish notation)。有關棧的最基礎應用。

描述 編寫函式int add(char s[]);計算字串形式的逆波蘭表示式(即兩個運算元在前,計算符在後)。本題內,保證每個運算元均為1位數。操作符有’+’,’-‘,’*’,’/’四種。且保證計算過程中除法運算全部為整數除法,結果為整數。 如

Java實現-波蘭表示式求值

求逆波蘭表示式的值。 在逆波蘭表達法中,其有效的運算子號包括 +, -, *, / 。每個運算物件可以是整數,也可以是另一個逆波蘭計數表達。 您在真實的面試中是否遇到過這個題?  Yes

leetodeNOWCODER)---minimum-depth-of-binary-tree,evaluate-reverse-polish-notation

minimum-depth-of-binary-tree 時間限制:1秒 空間限制:32768K 熱度指數:90824 本題知識點: 樹 Given a binary tree, find its minimum depth.The minimum depth is the numb

LeetCode: Evaluate Reverse Polish Notation計算波蘭表示式兩種方法

題目描述Evaluate the value of an arithmetic expression in Reverse Polish Notation.Valid operators are +, -, *, /. Each operand may be an integ

[Swift]LeetCode150. 波蘭表示式求值 | Evaluate Reverse Polish Notation

Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, *, /. Each operand may be an

[LeetCode] Evaluate Reverse Polish Notation 計算波蘭表示式

Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, *, /. Each operand may be an integer or another exp

Python 藉助波蘭表示式字尾表示式實現簡單計算器

Python 藉助逆波蘭表示式(字尾表示式)實現簡單計算器 文章目錄 Python 藉助逆波蘭表示式(字尾表示式)實現簡單計算器 0. 參考資料 1. 中綴表示式轉字尾表示式 2. 字尾表示式的求值 3. Python

關於Java波蘭表示式堆疊操作簡單實現

目的: 重新熟悉逆波蘭表示式演算法,通過Java實現逆波蘭表示式從容更加深刻理解演算法與程式設計之間的關係;重新熟悉堆疊,並用Java程式實現堆疊的操作。 驗證方式: 圖書館查閱資料,手寫計算逆波蘭實現基本演算法,電腦Java程式設計實現演算法。 過程: 1. 通過讀書,重

LeetCode | Evaluate Reverse Polish Notation波蘭式求值

Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, *, /. Each operand may be an int

leetcode 150. Evaluate Reverse Polish Notation 波蘭表達式的計算

tm4 csv ref left ade 計算 cow wow tar J抗50俳k7甘2zp杜沃2http://shufang.docin.com/itdc957 嗇耪不侍40加怨8侔mcshttp://shequ.docin.com/igxg437 墓yT曰啡7I6

150. Evaluate Reverse Polish Notation(波蘭表達式)

逆波蘭 逆波蘭表達式 spa rpn href self desc quest tor Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operator

150 Evaluate Reverse Polish Notation 波蘭表達式求值

div tps pro pre public res desc ever esc 求在 逆波蘭表示法 中算術表達式的值。有效的運算符號包括 +, -, *, / 。每個運算對象可以是整數,也可以是另一個逆波蘭計數表達。例如: ["2", "1", "+", "3", "*

[leetcode]150. Evaluate Reverse Polish Notation波蘭表示法

urn tco ssi his leet tput orm spa help Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +,

[Swift]LeetCode150. 波蘭表達式求值 | Evaluate Reverse Polish Notation

aid 說明 mina string divide xpl truncate fun nta Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operator

編譯原理中的波蘭表示式資料流圖中運算變數的流程

表示式一般由運算元(Operand)、運算子(Operator)組成,例如算術表示式中,通常把運算子放在兩個運算元的中間, 這稱為中綴表示式(Infix Expression),如A+B。 波蘭數學家Jan Lukasiewicz提出了另一種數學表示法,它有兩種表示形

波蘭表示式字尾表示式的計算

  已知12*(3+4)- 6+8/2的字尾表示式為:12 3 4 + * 6 - 8 2 / +    字尾表示式計算時,所有運算按照運算子出現的順序,嚴格從左到右,每個操作符取前兩個運算元進行運算,運算後的結果仍然作為下次的運算元。 那如果已知字尾表

C#資料結構與算法系列波蘭計算器——波蘭表示式字尾表示式

1.介紹 字尾表示式又稱逆波蘭表示式,與字首表示式相似,只是運算子位於運算元之後 2.舉例說明 (3+4)*5-6對應的字尾表示式就是3 4 +5 * 6 - 3.示例 輸入一個逆波蘭表示式(字尾表示式),使用棧(Stack),計算其結果 思路分析: 從左至右掃描表示式,遇到數字時,將數字壓入堆疊,遇到運算

[LeetCode] 150. Evaluate Reverse Polish Notation Java

value class 題目 als eval 註意 light 程序 highlight 題目: Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operat