一、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;
}
}