链接:
https://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3?
tpId=13&tqId=11197&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
描述:
示例:
过程:
先局部翻转:将字符串中所有单词进行翻转
整体翻转:
代码:
class Solution {
public:
void Reverse(string &str,int start,int end){
while(start < end)
{
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
string ReverseSentence(string str) {
if(str.size() == 0) return str;
int i = 0;
int j = i;
int len = str.size();
while(i<len){
while(i<len && !isspace(str[i])) i++;
Reverse(str,j,i-1);
while(i<len && isspace(str[i])) i++;
j = i;
}
Reverse(str, j,i-1);
Reverse(str,0,len-1);
return str;
}
};