Redian新闻
>
问面试一题: OOP 设计 for "Evaluate Reverse Polish Notation"
avatar
问面试一题: OOP 设计 for "Evaluate Reverse Polish Notation"# JobHunting - 待字闺中
D*G
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; iif (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;
};
avatar
t*5
2
没看懂题,帮顶,回来看解答
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。