151.抽象出的removeSpace函数有点难度
class Solution {
public:
void removeSpace(string &s){
int size=s.size();
int slow=0;
for(int i=0;i<size;++i){
if(!isspace(s[i])){
if(slow!=0) s[slow++]=' ';
while(i<size && !isspace(s[i])){
s[slow++]=s[i++];
}
}
}
s.resize(slow);
}
string reverseWords(string s) {
removeSpace(s);
reverse(s.begin(),s.end());
int k=0;
for(int i=0;i<s.size();++i){
if(isspace(s[i])){
reverse(s.begin()+k,s.begin()+i);
k=i+1;
}
}
reverse(s.begin()+k,s.end());
return s;
}
};
58.左旋还可以
class Solution {
public:
string reverseLeftWords(string s, int n) {
reverse(s.begin(),s.end());
int v=s.size()-n;
reverse(s.begin(),s.begin()+v);
reverse(s.begin()+v,s.end());
return s;
}
};