题解 | #逆波兰表达式求值#
逆波兰表达式求值
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]; }