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; } }
全部评论
(1) 回帖