leetcode - 224. 基本计算器

leetcode - 224. 基本计算器

题目

leetcode - 224. 基本计算器_第1张图片

代码

#include 
#include 
#include 
using namespace std;

int calculate(string s) {
	int n = s.size();
	int res = 0;
	int sign = 1, i = 0;
	stack<int> op;
	op.push(1);
	while(i < n){
		if(s[i] == ' '){
		}else if(s[i] == '+'){
			sign = op.top();
		}else if(s[i] == '-'){
			sign = -op.top();
		}else if(s[i] == '('){
			op.push(sign);
		}else if(s[i] == ')'){
			op.pop();
		}else{
			int tn = 0;
			while(i < n && '0' <= s[i] && s[i] <= '9'){
				tn = tn * 10 + s[i] - '0';
				i++;
			}
			res += sign * tn;
			i--;
		}
		i++;
	}
	return res;
}

int main(){
	int res;
	string s;
	cin>>s;
	res = calculate(s);
	cout<<res;
	return 0;
} 

你可能感兴趣的:(刷题,leetcode,c++)