227. Basic Calculator II(unsolved)
2017-07-16 12:07
381 查看
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.
You may assume that the given expression is always valid.
Some examples:
“3+2*2” = 7
” 3/2 ” = 1
” 3+5 / 2 ” = 5
Note: Do not use the eval built-in library function.
The expression string contains only non-negative integers, +, -, *, / operators and empty spaces . The integer division should truncate toward zero.
You may assume that the given expression is always valid.
Some examples:
“3+2*2” = 7
” 3/2 ” = 1
” 3+5 / 2 ” = 5
Note: Do not use the eval built-in library function.
class Solution { public: int calculate(string s) { int result=0,num=0; char sign='+'; stack<int> st; for(int i=0;i<s.size() ;i++){ if(isdigit(s[i])){ num=num*10+s[i]-'0'; } if((!isdigit(s[i])&&s[i]!=' ' )|| i == s.size() - 1){ if(sign=='+') st.push(num); else if(sign=='-') st.push(-num); else if(sign=='*'){ int tmp=st.top()*num; st.pop(); st.push(tmp); } else if(sign=='/'){ int tmp=st.top()/num; st.pop(); st.push(tmp); } num=0; sign=s[i]; } } while(!st.empty()){ result+=st.top(); st.pop(); } return result; } };
相关文章推荐
- 227. Basic Calculator II
- leetcode 227: Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 【leetcode】String——Basic Calculator II (227)
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II
- String-227-Basic Calculator II
- 227. Basic Calculator II
- Leetcode 227 Basic Calculator II
- LeetCode227:Basic Calculator II
- 227. Basic Calculator II**
- 【LeetCode 227】Basic Calculator II
- leetcode 227: Basic Calculator II
- 227. Basic Calculator II
- 227. Basic Calculator II