字符串处理应该属于基本功了,更何况是翻转句子,不够过没想到的这个题目的各种空格判断让我的程序改了又改,刚开始鲁棒性太差,经过几次调试,处理空格,最后终于A过。
class Solution {
public:
void reverseWords(string &s) {
if(s==""){
return;
}
s=s+" ";
string str="";
string ret="";
int flag=1;
for(int i=0;i<s.length();i++){
if(s[i]!=' '){
str+=s[i];
flag=1;
}
else if(s[i]==' '&&flag==1){
ret=str+" "+ret;
str="";
flag=0;
}
}
s=ret;
int i,k;
for(i=0,k=0;i<s.length();i++){
if((s[i]==' ')){
k++;
}
else if(s[i]!=' '){
break;
}
}
s.erase(0,k);
for(i=s.length()-1,k=0;i>=0;i--){
if((s[i]==' ')){
k++;
}
else if(s[i]!=' '){
break;
}
}
s.erase(s.length()-k,s.length());
}
};