您的位置:首页 > 其它

Reverse Words in a String —— Leetcode

2015-09-09 18:29 465 查看
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.

class Solution {
public:
void reverseWords(string &s) {
if(s.empty()) {
s.clear();
return ;
}

int i = 0;
stack<string> st;

while(i<s.size()) {
//将i置于每个单词首字母位置
while(s[i]==' ') i++;
if(i==s.size()) break;
//将j置于单词末尾处后一位
int j = i;
while(s[j]!=' ' && j<s.size()) j++;
//将该单词添加入stack
st.push(s.substr(i, j-i));

i = j;
}
//翻转后的单词
s.clear();
while(!st.empty()) {
s += st.top()+" ";
st.pop();
}
s = s.substr(0, s.size()-1);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: