题解:UVA12803 Arithmetic Expressions
Charles_with_wkc · · 题解
前置知识:
eval 函数。
题目大意:
给你一个以字符串形式输入的表达式,请你转换出这个表达式的值并输出。这里是中缀转前缀。
思路:
Python:
我们可以直接调用 eval 函数,它的作用是将字符串作为函数的参数,从而直接计算出表达式的值。
C++:
其实做法很简单,我们需要准备数字栈,遇到数字就入栈,遇到字符就弹出栈顶的两个元素,来做运算即可。最后输出栈顶元素即可。
核心代码:
if(s[i]>='0'&&s[i]<='9'){
sum=sum*10+s[i]-'0';//拼接
}
else{
q.push(sum);//存储
}
while(!q2.empty()){
int top1=q1.front();
q1.pop();
int top2=q1.front();
q1.pop();
q1.push(top1 ^ top2);//^这里指q2的front
}