代码随想录算法训练营
Day11 代码随想录算法训练营第 11 天 | LeetCode150. 逆波兰表达式求值 LeetCode239. 滑动窗口最大值 LeetCode347.前 K 个高频元素
目录
前言
LeetCode150. 逆波兰表达式求值
LeetCode239. 滑动窗口最大值
LeetCode347.前 K 个高频元素
一、LeetCode150. 逆波兰表达式求值
1.题目链接
2.思路
(1)遍历字符串数组
(2)如果遇到数字,则放入栈中
(3)遇到符号,则弹出栈顶前两个元素,运算后压回栈中
(4)返回栈顶元素
细节:数组元素为字符串
1)判定是,以±*/作为判断条件更容易
2)将数字压入栈中时,用stoll()函数将字符串转换成long long类型
3)数据范围使得我们需要long long
3.题解
class Solution {
public:
int evalRPN(vector<string>& tokens) {
stack<long long> st;
int n = tokens.size();
for (int i = 0; i < n; i++) {
if (tokens[i] == "+") {
long long temp = st.top();
st.pop();
long long num = st.top();
st.pop();
st.push(num + temp);
} else if (tokens[i] == "-") {
long long temp = st.top();
st.pop()