LintCode-53.翻转字符串
翻转字符串
给定一个字符串,逐个翻转字符串中的每个单词。
说明
- 单词的构成:无空格字母构成一个单词
- 输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括
- 如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个
标签
字符串处理
code
class Solution {
public:
/**
* @param s : A string
* @return : A string
*/
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;
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;
}
};