题解 | #翻转字符串(1)#
翻转字符串(1)
http://www.nowcoder.com/practice/972117dd8f334076a5df6a68b0a8f3dd
#include<bits/stdc++.h>
using namespace std;
int main(){
string str;
getline(cin,str);
int start=0,end=0;
for(int i=0;i<str.size();i++){
if(str[i]!=' ')
end++;
else{//遇到空格了将start到end的单词逆序
end--;
while(start<=end){
char temp=str[start];
str[start]=str[end];
str[end]=temp;
start++;
end--;
}
//然后更新start和end
start=i+1;
end=i+1;
}
}
//由于每次都是遇到空格才进行逆序单词所以最后一个单词会漏掉
end--;
while(start<=end){
char temp=str[start];
str[start]=str[end];
str[end]=temp;
start++;
end--;
}
cout<<str<<endl;
return 0;
}
using namespace std;
int main(){
string str;
getline(cin,str);
int start=0,end=0;
for(int i=0;i<str.size();i++){
if(str[i]!=' ')
end++;
else{//遇到空格了将start到end的单词逆序
end--;
while(start<=end){
char temp=str[start];
str[start]=str[end];
str[end]=temp;
start++;
end--;
}
//然后更新start和end
start=i+1;
end=i+1;
}
}
//由于每次都是遇到空格才进行逆序单词所以最后一个单词会漏掉
end--;
while(start<=end){
char temp=str[start];
str[start]=str[end];
str[end]=temp;
start++;
end--;
}
cout<<str<<endl;
return 0;
}