224. 基本计算器
题目链接:224. 基本计算器文章来源:https://www.toymoban.com/news/detail-804222.html
代码如下:文章来源地址https://www.toymoban.com/news/detail-804222.html
//参考:leetcode官方题解
class Solution {
public:
int calculate(string s) {
int ret=0;
stack<int> ops;//栈顶元素记录了当前位置所处的每个括号所共同形成的符号
ops.push(1);
int sign=1;
int i=0;
while(i<s.size())
{
if(s[i]==' ')
i++;
else if(s[i]=='+')
{
sign=ops.top();
i++;
}
else if(s[i]=='-')
{
sign=-ops.top();
i++;
}
else if(s[i]=='(')
{
ops.push(sign);
i++;
}
else if(s[i]==')')
{
ops.pop();
i++;
}
else
{
long num=0;
//将字符表示的数转化为int类型的数
while(i<s.size()&&s[i]>='0'&&s[i]<='9')
{
num=num*10+s[i]-'0';
i++;
}
ret +=sign*num;
}
}
return ret;
}
};
到了这里,关于224. 基本计算器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!