关注
// write your code here
public static int resolve(String expr) {
String[] tokens = expr.split(" ");
int length = tokens.length;
Stack<Integer> stack = new Stack<>();
int a , b , c;
for (int i = 0; i < length; i++) {
if( !isOperator(tokens[i]) ) {
stack.push(Integer.parseInt(tokens[i]));
} else {
if(!isSelfIncress(tokens[i])) {
try {
a = stack.pop();
b = stack.pop();
c = getRS(b, a, tokens[i]) ;
if(stack.size() > 16) return -2;
stack.push(c);
} catch (EmptyStackException e) {
return -1;
}
}
if(isSelfIncress(tokens[i])) {
try {
a = 0;
b = stack.pop();
c = getRS(b, a, tokens[i]) ;
if(stack.size() > 16) return -2;
stack.push(c);
} catch (EmptyStackException e) {
return 1;
}
}
}
}
return stack.peek();
}
public static boolean isOperator(String string) {
if("+".equals(string) || "*".equals(string) ||
"^".equals(string) ) {
return true;
} else
return false;
}
public static boolean isSelfIncress(String string) {
if("^".equals(string) ) {
return true;
} else {
return false;
}
}
public static int getRS(int a ,int b , String operator){
if("+".equals(operator)) {
return a + b;
} else if("*".equals(operator)) {
return a * b;
} else if("^".equals(operator)) {
return ++a;
}
return 0;
}
我是通过catch异常和判断是否大于16来判断上下溢出的。
查看原帖
点赞 评论
相关推荐
11-15 17:16
广东海洋大学 全栈开发 点赞 评论 收藏
分享
12-24 15:00
门头沟学院 算法工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
172983次浏览 2921人参与
# 找工作,行业重要还是岗位重要? #
85323次浏览 1688人参与
# 职场上哪些行为很加分? #
306940次浏览 3452人参与
# 大家每天通勤多久? #
69823次浏览 442人参与
# 实习的内耗时刻 #
211196次浏览 1539人参与
# 你面试体验感最差/最好的公司 #
17875次浏览 292人参与
# 一人说一个提前实习的好处 #
10793次浏览 204人参与
# 今年你最想重开的一场面试是? #
4133次浏览 69人参与
# 秋招落幕,你是He or Be #
12223次浏览 240人参与
# 互联网行业现在还值得去吗 #
46926次浏览 351人参与
# 实习没事做是福还是祸? #
16820次浏览 255人参与
# 面试吐槽bot #
165016次浏览 814人参与
# 重来一次,你会对开始求职的自己说 #
6124次浏览 154人参与
# 反问环节如何提问 #
126388次浏览 2663人参与
# 礼物开箱Plog #
693次浏览 24人参与
# 工作中听到最受打击的一句话 #
6680次浏览 113人参与
# 团建是“福利”还是是 “渡劫” #
7236次浏览 150人参与
# 我的第一份实习怎么找的 #
208570次浏览 1827人参与
# 比亚迪工作体验 #
74738次浏览 281人参与
# 大家实习每天都在干啥 #
106542次浏览 581人参与
顺丰集团工作强度 379人发布
