在我们可以使用atoi函数将字符串转换为数字
使用方法就是atoi(字符串名.c_str())
这会返回一个字符串对应的数字
string a = "12345"
int b = atoi(a.c_str());
例题:力扣逆波兰表达式求值
https://leetcode.cn/problems/evaluate-reverse-polish-notation/description/?envType=study-plan-v2&envId=top-interview-150
思路:用栈来存数据,遇到运算符号就取出栈顶的元素进行运算,否则放到栈顶
代码:
class Solution {
public:
int evalRPN(vector<string>& tokens) {
stack<int> nums;
for(auto it:tokens)
{
if(it == "+")
{
int temp = nums.top();
nums.pop();
temp += nums.top();
nums.pop();
nums.push(temp);
}
else if(it == "-")
{
int temp = -1 * nums.top();
nums.pop();
temp += nums.top();
nums.pop();
nums.push(temp);
}
else if(it == "*")
{
int temp = nums.top();
nums.pop();
temp *= nums.top();
nums.pop();
nums.push(temp);
}
else if(it == "/")
{
int temp1 = nums.top();
nums.pop();
auto temp2 = nums.top();
nums.pop();
temp2 /= temp1;
nums.push(temp2);
}
else
{
nums.push(atoi(it.c_str()));
}
}
return nums.top();
}
};