Given an input string, reverse the string word by word.
For example,
Given s = “the sky is blue”,
return “blue is sky the”.
Update (2015-02-12):
For C programmers: Try to solve it in-place in O(1) space.
click to show clarification.
Subscribe to see which companies asked this question
保留每个单词,遇到空格就入栈
class Solution {
public:
void reverseWords(string &s) {
stack<string> st;
int len=s.length();
string temp="";
int lentemp=0;
for(int i=0;i<len;i++){
if(s[i]!=' '){
temp+=s[i];
}
else{
lentemp=temp.length();
if(lentemp>0) st.push(temp);
temp.clear();
}
}
lentemp=temp.length();
if(lentemp>0) st.push(temp);
temp.clear(); --这里是容易被忽略掉的部分
s.clear();
s="";
if(!st.empty()){
s+=st.top();
st.pop();
}
while(!st.empty()){
s+=" "+st.top();
st.pop();
}
}
};