227. Basic Calculator II class Solution { public int calculate(String s) { // remove all empty space s = s.replaceAll(" ", ""); int sum = s.charAt(0) - '0'; int prev = s.charAt(0) - '0'; int index = 0; char op = '+'; // more than one digits while(index + 1 < s.length() && Character.isDigit(s.charAt(index+1))){ sum = sum * 10 + (s.charAt(index + 1) - '0'); prev = prev * 10 + (s.charAt(index + 1) - '0'); index++; } for(int i = index + 1; i < s.length(); i++){ char c = s.charAt(i); if(!Character.isDigit(c)){ op = c; }else{ int current = c - '0'; while(i + 1 < s.length() && Character.isDigit(s.charAt(i + 1))){ current = current * 10 + (s.charAt(i + 1) - '0'); // 要减 0, 不减0, 就是 一个 char。 i++; } if(op == '+'){ sum = sum + current; prev = current; } if(op == '-'){ sum = sum - current; prev = -current; } if(op == '*'){ sum = sum - prev + prev * current; prev = prev * current; } if(op == '/'){ sum = sum - prev + prev / current; prev = prev / current; } } } return sum; } }
227. Basic Calculator II
猜你喜欢
转载自www.cnblogs.com/tobeabetterpig/p/9455021.html
今日推荐
周排行