题目:翻转字符串:“student. a am I”。句子应该是“I am a student.”
思路:先把句子整体翻转,然后把每一个单词翻转。
class Solution {
public:
string ReverseSentence(string str) {
int length=str.size();
int i=0,j=0;
if(length==0){
return str;
}
Reverse(str,0,length-1);
while(i<length){
if(str[i]==' '){
Reverse(str,j,i-1);
j=i+1;
}
if(i==length-1){
Reverse(str,j,i);
break;
}
i++;
}
return str;
}
void Reverse(string &str,int low,int high){
while(low<high){
int tmp=str[low];
str[low]=str[high];
str[high]=tmp;
low++;
high--;
}
}
};