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