一、Java Stack 類
棧是Vector的一個子類,它實現了一個標準的後進先出的棧。
堆棧只定義了默認構造函數,用來創建一個空棧。 堆棧除了包括由Vector定義的所有方法,也定義了自己的一些方法。
(上圖來自菜鳥教程)
二、Java String-Integera
①String str = "2333"; Integer a = Integer.valueOf(str);
②Integer a = 233;String str = String.valueOf(a);
import java.util.*;
public class Solution {
public int evalRPN(String[] tokens) {
Stack<Integer> sk = new Stack<>();
int ans, a, b;
for(String t : tokens) {
if("+".equals(t)) {
if(!sk.empty()) a = sk.pop();
else return -1;
if(!sk.empty()) b = sk.pop();
else return -1;
sk.push(a+b);
}
else if("-".equals(t)) {
if(!sk.empty()) a = sk.pop();
else return -1;
if(!sk.empty()) b = sk.pop();
else return -1;
sk.push(b-a);
}
else if("*".equals(t)) {
if(!sk.empty()) a = sk.pop();
else return -1;
if(!sk.empty()) b = sk.pop();
else return -1;
sk.push(a*b);
}
else if("/".equals(t)) {
if(!sk.empty()) a = sk.pop();
else return -1;
if(!sk.empty()) b = sk.pop();
else return -1;
sk.push(b/a);
}
else {
sk.push(Integer.valueOf(t));
}
}
if(!sk.empty()) ans = sk.pop();
else return -1;
if(!sk.empty()) return -1;
return ans;
}
}