import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 给定一个后缀表达式,返回它的结果
* @param str string字符串
* @return long长整型
*/
public long solve(String str) {
// write code here
ArrayList<Long> num = new ArrayList();
ArrayList<Character> operator = new ArrayList();
int i = 0;
if (str.length() == 1) {
return Long.parseLong(str);
}
while (!str.isEmpty()) {
if (str.charAt(i) == '#') {
String s = str.substring(0, i);
num.add(Long.parseLong(s));
str = str.substring(i + 1);
i = 0;
}
if (str.equals("")) break;
if (str.charAt(i) == '+' || str.charAt(i) == '-' || str.charAt(i) == '*') {
operator.add(str.charAt(i));
str = str.substring(i + 1);
i = 0;
}
i++;
}
//operator.add(0, '+');
while (!num.isEmpty() && !operator.isEmpty()) {
long t1 = num.get(0);
long t2 = num.get(1);
num.remove(0);
num.remove(0);
char op = operator.get(0);
operator.remove(0);
if (op == '+') {
long t = t1 + t2;
num.add(0, t);
} else if (op == '-') {
long t = t1 - t2;
num.add(0, t);
} else if (op == '*') {
long t = t1 * t2;
num.add(0, t);
}
}
long ans = num.get(0);
return ans;
}
}