题解 | 牛牛与后缀表达式

牛牛与后缀表达式

https://www.nowcoder.com/practice/a1a4f178f6ff4188890e51da1cc8ce10

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 给定一个后缀表达式,返回它的结果
     * @param str string字符串 
     * @return long长整型
     */
    long long legalExp(string str) {
        // write code here
        stack<long long> st;
        int p1=0,p2=str.find('#');
        string num_str;
        long long num;
        for(int i=0;i<str.size();i++){
        	if(str[i]=='#'){
        		p2=i;
        		num_str=str.substr(p1,p2-p1);
        		p1=p2+1;
        		num=stoi(num_str);
        		st.push(num);
			}
        	if(str[i]=='+'){
        		p1=i+1;
        		long long n1=st.top();st.pop();
        		long long n2=st.top();st.pop();
        		st.push(n1+n2);
			}else if(str[i]=='-'){
        		p1=i+1;
        		long long n1=st.top();st.pop();
        		long long n2=st.top();st.pop();
        		st.push(n2-n1);
			}else if(str[i]=='*'){
        		p1=i+1;
        		long long n1=st.top();st.pop();
        		long long n2=st.top();st.pop();
        		st.push(n1*n2);
			}
		}
		return st.top();
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务