题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
class Solution {
public:
void reverse(string& str, int start, int end){
while(end > start){
int temp = str[end];
str[end] = str[start];
str[start] = temp;
end --;
start ++;
}
}
string ReverseSentence(string str) {
int len = str.size();
int start = 0;
int end = len -1;
//整个句子反转
reverse(str, start, end);
start = end = 0;
while(start < len){
if(str[start] == ' '){
start ++;
end ++;
}
else if(end == len || str[end]== ' '){
reverse(str,start ,--end);
start = ++ end;
}
else{
end ++;
}
}
return str;
}
};