import java.util.ArrayList; import java.util.Scanner; import java.util.Stack; public class Main3 { public static void main(String[] args) { ArrayList<Integer> inputs = new ArrayList<Integer>(); Scanner in = new Scanner(System.in); String line = in.nextLine(); if(line != null && !line.isEmpty()) { int res = resolve(line.trim()); System.out.println(String.valueOf(res)); } } // write your code here public static int resolve(String expr) { String[] strArr=expr.split(" "); Stack<Integer> stack=new Stack<Integer>(); for(int i=0;i<strArr.length;i++){ if(!strArr[i].equals("*")&&!strArr[i].equals("^")&&!strArr[i].equals("+")){ stack.push(Integer.parseInt(strArr[i])); } if(stack.size()>16){ return -2; } if(strArr[i].equals("*")){ if(stack.size()<2){ return -1; } int n1=stack.pop(); int n2=stack.pop(); int res=n1*n2; stack.push(res); } if(strArr[i].equals("^")){ if(stack.size()<1){ return -1; } int n1=stack.pop(); int res=n1+1; stack.push(res); } if(strArr[i].equals("+")){ if(stack.size()<2){ return -1; } int n1=stack.pop(); int n2=stack.pop(); int res=n1+n2; stack.push(res); } } return stack.pop(); } } 这样ac出来了
点赞 2

相关推荐

牛客网
牛客企业服务