关于力扣仅仅反转字母问题,想用试试压栈来解,可总是出错,大神帮忙看一下吧TAT。

class Solution {
public:
    string reverseOnlyLetters(string S) {
        int i,j,size;
        size=S.size();
        stack<char>st;//定义栈
        string moment;
        for(i=0;i<size;i++){//若不为字母,赋给moment,若是字母,压栈
            if(!isalpha(S[i]))
                moment[i]=S[i];
          else  st.push(S[i]);
                  moment[i]=0;
                }
        for(j=0;j<size;j++){//若moment为零,则用栈顶元素赋值,弹栈
            if(moment[j]==0){
                moment[j]=st.top();
                st.pop();
            }
        }
return moment;
        }
};

可能方法显得很蠢,主要就是想试试看自己了解栈解法了没,结果这个样子出错,是因为对栈的理解不够还是纯粹的语法问题?小白一个,虚心求教。

https://blog.csdn.net/viadimir/article/details/90416993