给定一个字符串,逐个翻转字符串中的每个单词。
说明
- 单词的构成:无空格字母构成一个单词
- 输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括
- 如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个
string reverseWords(string s) {
// write your code here
string word, line;
int size=s.size();
int i=size-1,j, begin=size-1, end=size-1;
//i是整个字符串的处理记录,begin是单词的头,end是单词的尾巴
if(s.empty())
return string();
while(i >= 0)
{
while(s[i]==' ' && i>=0) {
begin--;
end--;
i--;
}
while(s[i]!=' ' && i>=0) {
begin--;
i--;
}
word.resize(0);
for(j=begin+1; j<=end; j++){
word.append(1, s[j]);
}
if(begin == 0)
line = line + word;
else
line = line + word + " ";
end = begin;
}
return line;
}