150. 逆波兰表达式求值
1. C++中 没有 int( "3"+"+"+"4"),不合法,C++中没有字符串相加再计算的操作,忘记是哪个语言的特性了
2. stoll 将字符串转换成 long long 型
class Solution {
public:
int evalRPN(vector<string>& tokens) {
//题目给的测试条件都是标准的 表达式,不会有不合规的操作,不需要判断输入不合规的字母
stack<long long> st;
for(int i=0;i<tokens.size();i++)
{
//string用双引号
if(tokens[i]== "+" || tokens[i]=="-"||tokens[i]=="*"||tokens[i]=="/")
{
long long a=st.top();
st.pop();
long long b=st.top();
st.pop();
if(tokens[i]=="+") st.push(a+b);
else if(tokens[i]=="-") st.push(b-a);
else if(tokens[i]=="*") st.push(a*b);
else st.push(b/a);
}
else
{
st.push(stoll(tokens[i])); //压栈的时候已经转型为整型,后面不需要考虑转型
}
}
//int res=st.top();
return st.top(); //long和int可以自动转型
}
};
后两题没看