Basic Calculator II
Total Accepted: 23197 Total Submissions: 91345 Difficulty: Medium
Implement a basic calculator to evaluate a simple expression string.
The expression string contains onlynon-negativeIntegers,+
,-
,*
,/
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
Note: don't use the eval
built-in library function.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
Hide TagsStringHide Similar Problems(h) Basic Calculator (h) Expression Add Operators
Java code:
public class Solution {public int calculate (String s) {int len = s.length (); if (S==null | | len==0) return 0; stack<integer> stack = new stack<integer> (); Char sign = ' + '; int num = 0; for (int i=0;i<len;i++) {char c = s.charat (i); if (Character.isdigit (c)) num = ten * num + c ' 0 '; if (! Character.isdigit (c) && c! = "| | i==len-1) {switch (sign) {case ' + ': Stack.push (num); Break Case '-': Stack.push (-num); Break Case ' * ': Stack.push (Stack.pop () *num); Break Case '/': Stack.push (Stack.pop ()/num); } sign = C; num = 0; } } int ans = 0; for (int x:stack) ans + = x; return ans; }}
Leetcode:basic Calculator II