题目:根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
说明:1.整数除法只保留整数部分。2.给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
解题算法:
public class Solution {
public int EvalRPN(string[] tokens) {
Stack<int> s= new Stack<int>();
int i=0;
while(i<tokens.Length)
{
int temp=0;
if(int.TryParse(tokens[i],out temp))
{
s.Push(temp);
}
else
{
var a2=s.Pop();
var a1=s.Pop();
if(tokens[i]=="+")
{s.Push(a1+a2);}
else if(tokens[i]=="/")
{s.Push(a1/a2);}
else if(tokens[i]=="-")
{s.Push(a1-a2);}
else if(tokens[i]=="*")
{s.Push(a1*a2);}
}
i++;
}
return s.Pop();
}
}