题目介绍
代码及其实验结果
public class Solution {
public int EvalRPN(string[] tokens) {
Stack<int> s = new Stack<int>();
for(int i=0;i<tokens.Length;i++)
{
int tmp = 0;
if(int.TryParse(tokens[i],out tmp))///输入元素并将其放入栈中
{
s.Push(tmp);
}
else
{
var v2 = s.Pop();//获取栈顶的元素后删除,v2即为栈顶元素
var v1 = s.Pop();//由于栈顶元素v2已删除,v1即相当于原来栈顶第二的元素
if(tokens[i] == "+")
{
s.Push(v1+v2);
}
else if(tokens[i] == "/"){
s.Push(v1/v2);
}
else if(tokens[i] == "-")
{
s.Push(v1-v2);
}
else if(tokens[i] == "*")
{
s.Push(v1*v2);
}
}
}
return s.Pop();
}
}