由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问面试一题: OOP 设计 for "Evaluate Reverse Polish Notation"
相关主题
这个是不是leetcode的bug?How to solve Evaluate Reverse Polish Notation using recursion?
L 电面twitter 又一题
2 Sigma的onsite面经L家电面题目
L面经 回报本版最失败的一次onsite - bloomberg
问一个c++ 函数指针的问题面试题: Amazon, LinkedIn and Twitter
请教一个 c++ member function pointer 问题Amazon.com电面
Leetcode上stack相关的题目相比CC150题怎么那么少?Longest Valid Parentheses发一个Startup的面经 - Affirm
Polish Notation指针函数, 函数指针, 头大。。
相关话题的讨论汇总
话题: int话题: hmap话题: my话题: tokens话题: return
进入JobHunting版参与讨论
1 (共1页)
D*********G
发帖数: 193
1
前一阵面试,被问到Evaluate Reverse Polish Notation.
做完之后,要求设计一个object来完成不同的符号运算,条件是避免if 或者 switch
去check符号,从而提高速度。
当时觉得肯定是要hmap加函数指针。面试官不是很满意,要求设计一个类实现。
不会,主要问题是hmap里面只能放 父函数,调用的时候都是父函数的function。
我的函数指针的方法如下,请大家指点一下如何能用类实现啊
typedef int(*pf)(int, int);
int my_add(int a, int b){ return a + b; }
int my_sub(int a, int b){ return a - b; }
int my_mul(int a, int b){ return a*b; }
int my_div(int a, int b){ return a / b; }
class Solution {
public:
Solution(){
hmap["+"] = my_add, hmap["-"] = my_sub, hmap["*"] = my_mul, hmap["/"
] = my_div;
}
int evalRPN(vector &tokens) {
if (!tokens.size()) return 0;
stack intergers;
int a = 0, b = 0;
for (int i = 0; i if (hmap.count(tokens[i])){
a = intergers.top(); intergers.pop();
b = hmap[tokens[i]](a,b);
}
else{
intergers.push(b);
b = atoi(tokens[i].c_str());
}
}
return b;
}
private:
map hmap;
};
t******5
发帖数: 49
2
没看懂题,帮顶,回来看解答
1 (共1页)
进入JobHunting版参与讨论
相关主题
指针函数, 函数指针, 头大。。问一个c++ 函数指针的问题
问道C的面试题请教一个 c++ member function pointer 问题
在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的(转载)Leetcode上stack相关的题目相比CC150题怎么那么少?Longest Valid Parentheses
求助,如何才能将一个c++对象封装成一个函数指针。 (转载)Polish Notation
这个是不是leetcode的bug?How to solve Evaluate Reverse Polish Notation using recursion?
L 电面twitter 又一题
2 Sigma的onsite面经L家电面题目
L面经 回报本版最失败的一次onsite - bloomberg
相关话题的讨论汇总
话题: int话题: hmap话题: my话题: tokens话题: return