题解 | #逆波兰表达式求值#

逆波兰表达式求值

https://www.nowcoder.com/practice/885c1db3e39040cbae5cdf59fb0e9382

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param tokens string字符串一维数组 
 * @param tokensLen int tokens数组长度
 * @return int整型
 */
 #include<stdlib.h>
 int top=0;
 long long  a[100009];
 void push(int x);
 int pop();
int evalRPN(char** tokens, int tokensLen ) {
    int i,a,b;
    top=0;
    for(i=0;i<tokensLen;i++)
    {
        if (strcmp(tokens[i],"+")==0)
        {
            a=pop();
            b=pop();
            push(a+b);
        }
        else if (strcmp(tokens[i],"-")==0)
         {
            a=pop();
            b=pop();
            push(b-a);
        }
         else if (strcmp(tokens[i],"*")==0)
         {
            a=pop();
            b=pop();
            push(a*b);
        }
         else if (strcmp(tokens[i],"/")==0)
         {
            a=pop();
            b=pop();
            push(b/a);
        }
        else push(atoi(tokens[i]));

    }
    return  pop();
}
void push(int x)
{
    top++;
    a[top]=x;
}
int pop()
{
    top--;
    return a[top+1];
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务