Implement a basic calculator to evaluate a simple expression string.
The expression string contains only non-negative integers, +,-, *,/operators and empty spaces. The integer division should truncate toward zero.
Assume that the given expression was always valid.
Some Examples:
"3+2*2" = 7
"3/2" = 1
"3+5/2" = 5
Problem Solving Ideas:
Note: "4*3/5" will appear in the test, so you can save the result of the last operation with one tempres, Tempop represent the nearest + + operator from the current operator, depending on the code:
static public int calculate (String s) {int res = 0, tempres = 0, Option = 1, Tempop = 1;for (int i = 0; i < s.length (); i++) {switch (S.charat (i)) {case ': break;case ' + ': option = 1;break;case '-': option = -1;break;case ' * ': option = 2;break Case '/': Option = 3;break;default:int num = 0;while (i < s.length () && character.isdigit (S.charat (i))) num = Nu M * + s.charat (i++)-' 0 '; I--;switch (Option) {case 1:res + = Tempop * Tempres;tempres = Num;tempop = 1;break;case-1:re s + = Tempop * Tempres;tempres = Num;tempop = -1;break;case 2:tempres *= num;break;case 3:tempres/= num;}}} Res + = Tempop * Tempres;return res;}
Java for Leetcode 227 Basic Calculator II