【算法系列之二】反波蘭式

問題:

用反波蘭式表示算術表達式的值。
有效運算符是+,-,*,/。每個操作數可以是一個整數或另一個表達式。
一些例子:

?

["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6

答案:

?

?

public class Solution {public int evalRPN(String[] tokens) {Stack<String> stack = new Stack<String>();for(int i=0;i<tokens.length;i++){if(tokens[i].equals("+")){int n = Integer.parseInt(stack.pop());int m = Integer.parseInt(stack.pop());stack.push(String.valueOf(n+m));}else if(tokens[i].equals("-")){int n = Integer.parseInt(stack.pop());int m = Integer.parseInt(stack.pop());stack.push(String.valueOf(m-n));}else if(tokens[i].equals("*")){int n = Integer.parseInt(stack.pop());int m = Integer.parseInt(stack.pop());stack.push(String.valueOf(n*m));}else if(tokens[i].equals("/")){int n = Integer.parseInt(stack.pop());int m = Integer.parseInt(stack.pop());int re;if(m == 0){re = 0;}else{re = m/n;}stack.push(String.valueOf(re));}else {stack.push(tokens[i]);}}return Integer.parseInt(stack.pop());}
}

?

?

?

?

?


?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443319.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443319.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443319.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【算法系列之三】單鏈表反轉

問題&#xff1a; 實現單鏈表反轉 答案&#xff1a; 鏈表準備 class Node {private int Data;// 數據域private Node Next;// 指針域public Node(int Data) {// super();this.Data Data;}public int getData() {return Data;}public void setData(int Data) {this.Data D…

Java常見異常總結

1、java.lang.NullPointerException(空指針異常)   調用了未經初始化的對象或者是不存在的對象 經常出現在創建圖片&#xff0c;調用數組這些操作中&#xff0c;比如圖片未經初始化&#xff0c;或者圖片創建時的路徑錯誤等等。對數組操作中出現空指針&#xff0c; 即把數組的…

從數據庫表中隨機獲取N條記錄的SQL語句

Oracle: select * from (select * from tableName order by dbms_random.value) where rownum < N; MS SQLServer: select top N * from tableName order by newid(); My SQL: select * from tableName order by rand() limit N; 轉自&#xff1a;http://blog.csdn.net/sent…

Linux下的MySQL安裝及卸載

1.1 查看mysql的安裝路徑&#xff1a; [rootbogon ~]# whereis mysql mysql: /usr/bin/mysql /usr/lib/mysql/usr/share/mysql /usr/share/man/man1/mysql.1.gz 1.2 查看mysql的安裝包&#xff1a; [rootbogon ~]# rpm -qa|grep mysql mysql-community-client-5.6.26-2.…

mysql explain用法

explain顯示了mysql如何使用索引來處理select語句以及連接表。可以幫助選擇更好的索引和寫出更優化的查詢語句。使用方法&#xff0c;在select語句前加上explain就可以了&#xff0c;如&#xff1a;explain select * from statuses_status where id11;創建測試表&#xff1a;CR…

Linux 性能檢查命令總結

如果你的Linux服務器突然負載暴增&#xff0c;告警短信快發爆你的手機&#xff0c;如何在最短時間內找出Linux性能問題所在&#xff1f;

線程池的各種使用場景

&#xff08;1&#xff09;高并發、任務執行時間短的業務&#xff0c;線程池線程數可以設置為CPU核數1&#xff0c;減少線程上下文的切換 &#xff08;2&#xff09;并發不高、任務執行時間長的業務要區分開看&#xff1a; a&#xff09;假如是業務時間長集中在IO操作上…

Java線程面試題 Top 50

不管你是新程序員還是老手&#xff0c;你一定在面試中遇到過有關線程的問題。Java語言一個重要的特點就是內置了對并發的支持&#xff0c;讓Java大受企業和程序員的歡迎。大多數待遇豐厚的Java開發職位都要求開發者精通多線程技術并且有豐富的Java程序開發、調試、優化經驗&…

深入理解Semaphore

使用 Semaphore是計數信號量。Semaphore管理一系列許可證。每個acquire方法阻塞&#xff0c;直到有一個許可證可以獲得然后拿走一個許可證&#xff1b;每個release方法增加一個許可證&#xff0c;這可能會釋放一個阻塞的acquire方法。然而&#xff0c;其實并沒有實際的許可證這…

【算法系列之四】柱狀圖儲水

題目&#xff1a; 給定一個數組&#xff0c;每個位置的值代表一個高度&#xff0c;那么整個數組可以看做是一個直方圖&#xff0c; 如果把這個直方圖當作容器的話&#xff0c;求這個容器能裝多少水 例如&#xff1a;3&#xff0c;1&#xff0c;2&#xff0c;4 代表第一個位…

鹽城大數據產業園人才公寓_岳西大數據產業園規劃設計暨建筑設計方案公布,搶先一睹效果圖...

近日&#xff0c;岳西縣大數據產業園規劃設計暨建筑設計方案公布。岳西縣大數據產業園項目總占地面積17014.10㎡(約合25.52畝)&#xff0c;擬建總建筑面積約為61590.84㎡(地上建筑面積39907.49㎡&#xff0c;地下建筑面積21602.35㎡)。以“科技圓環”為主題&#xff0c;組建出一…

【算法系列之五】對稱二叉樹

給定一個二叉樹&#xff0c;檢查它是否是鏡像對稱的。 例如&#xff0c;二叉樹 [1,2,2,3,4,4,3] 是對稱的。 1/ \2 2/ \ / \ 3 4 4 3但是下面這個 [1,2,2,null,3,null,3] 則不是鏡像對稱的: 1/ \2 2\ \3 3 說明: 如果你可以運用遞歸和迭代兩種方法解決這個問題&a…

【算法系列之六】兩整數之和

不使用運算符 和 - &#xff0c;計算兩整數 a 、b 之和。 示例 1: 輸入: a 1, b 2 輸出: 3示例 2: 輸入: a -2, b 3 輸出: 1 方法一&#xff1a;遞歸 public static int getSum1(int a, int b) {if ((a & b) ! 0) { // 判斷是否有進位return getSum1(a ^ b, (a &…

cuda默認函數與c++沖突_好程序員Python教程系列-第8講:函數和模塊

好程序員Python教程系列-第8講&#xff1a;函數和模塊&#xff0c;在講解本章節的內容之前&#xff0c;我們先來研究一道數學題&#xff0c;請說出下面的方程有多少組正整數解。事實上&#xff0c;上面的問題等同于將8個蘋果分成四組每組至少一個蘋果有多少種方案&#xff0c;所…

【算法系列之七】合并兩個有序鏈表

將兩個有序鏈表合并為一個新的有序鏈表并返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。 示例&#xff1a; 輸入&#xff1a;1->2->4, 1->3->4 輸出&#xff1a;1->1->2->3->4->4/*** Definition for singly-linked list.* public cla…

mfc讓圖片與按鈕一起_對許多張圖片進行批量裁剪,看看我是如何快速做到的

概要&#xff1a;當我們需要對很多圖片進行批量裁剪時&#xff0c;以往的辦法是自己一張一張圖片去操作&#xff0c;非常麻煩。有沒有這樣一個工具&#xff0c;能夠幫我們批量進行處理呢&#xff1f;之前小編在網上找了非常多的軟件&#xff0c;一個一個地安裝試用&#xff0c;…

【算法系列之八】刪除鏈表的倒數第N個節點

給定一個鏈表&#xff0c;刪除鏈表的倒數第 n 個節點&#xff0c;并且返回鏈表的頭結點。 示例&#xff1a; 給定一個鏈表: 1->2->3->4->5, 和 n 2.當刪除了倒數第二個節點后&#xff0c;鏈表變為 1->2->3->5.說明&#xff1a; 給定的 n 保證是有效的…

手寫分頁sql_分頁查詢SQL語句

表結構&#xff1a;DROP TABLE IF EXISTS zhoufoxcn.userlist;CREATE TABLE zhoufoxcn.userlist (UserId int(10) unsigned NOT NULL auto_increment,UserName varchar(45) NOT NULL,Age int(10) unsigned NOT NULL default 10,Sex tinyint(3) unsigned NOT NULL default 1,Ta…

【算法系列之九】合并兩個有序數組

給定兩個有序整數數組 nums1 和 nums2&#xff0c;將 nums2 合并到 nums1 中&#xff0c;使得 num1 成為一個有序數組。 說明: 初始化 nums1 和 nums2 的元素數量分別為 m 和 n。你可以假設 nums1 有足夠的空間&#xff08;空間大小大于或等于 m n&#xff09;來保存 nums2 …

把網卡指定給vm虛擬機_為VMWare虛擬網卡指定靜態的MAC地址

當你把虛擬機移到另一臺主機或在同一臺主機但不同的路徑時&#xff0c;虛擬機的MAC地址將會更改。默認情況下VMWare會保證MAC地址的唯一性卻不保存固定性&#xff0c;在每次開啟虛擬機里的系統時都可能重新分配MAC地址來保證唯一性&#xff0c;若你想保證即使虛擬機被移動后&am…