描述
给定一个字符串,逐个翻转字符串中的每个单词。
您在真实的面试中是否遇到过这个题?
是
说明
- 单词的构成:无空格字母构成一个单词
- 输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括
- 如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个
思路简单,注意一个字母的单词,以及何处添加空格的问题。
class Solution {
public:
/*
* @param s: A string
* @return: A string
*/
string reverseWords(string &s) {
// write your code here
int start=-1;
int end=-1;
string m_string;
for(int i=s.length()-1;i>=0;i--){
if(s[i]!=' '){
if(end<0) {
end=i;
start=i;
}
else start=i;
}else if(start>0&&end>0){
for(;start<=end;start++){
m_string+=s[start];
}
m_string+=' ';
start=-1;
end=-1;
}
if(start==0){
for(;start<=end;start++){
m_string+=s[start];
}
}
}
return m_string;
}
};