#include <iostream>
#include <string>
#include <vector>
using namespace std;

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 给定一个后缀表达式,返回它的结果
     * @param str string字符串 
     * @return long长整型
     */
    long long legalExp(string str) {
        // write code here
        vector<long long> a;
        long long index = -1;
        long long res;
        for (int i =0; i<str.size(); i++) {
            switch (str[i]) {
                case '+':
                    res = a[a.size()-2] + a[a.size()-1];
                    a.pop_back();
                    a.pop_back();
                    a.push_back(res);
                    cout<<res<<endl;
                    index = i;
                    break;
                case '-':
                    res = a[a.size()-2] - a[a.size()-1];
                    a.pop_back();
                    a.pop_back();
                    a.push_back(res);
                    cout<<res<<endl;
                    index = i;
                    break;
                case '*':
                    res = a[a.size()-2] * a[a.size()-1];
                    a.pop_back();
                    a.pop_back();
                    a.push_back(res);
                    cout<<res<<endl;
                    index = i;
                    break;
                case '#':
                    string numstr;
                    for (int j=index+1; j<i; j++) {
                        numstr.push_back(str[j]);
                    }
                    a.push_back(stoi(numstr));
                    index = i;
                    cout<<stoi(numstr)<<endl;
                    break;
            }
        }
        return a[0];
    }
};

为啥把‘#’放在最前面后面的所有case都会报错呢?