题解 | #翻转字符串(2)#
翻转字符串(2)
http://www.nowcoder.com/practice/79c562297c0e4ff0952ef39ecde1bd6b
//翻手掌算法
//该算法的思想为先把左边区域逆序再把右边区域逆序最后整体逆序即可
#include<bits/stdc++.h>
using namespace std;
int main(){
int size;
cin>>size;
string str;
cin>>str;
int start=0,end=size-1;
//逆序左半区域
while(start<=end){
char temp=str[start];
str[start]=str[end];
str[end]=temp;
start++;
end--;
}
//逆序右半区区域
start=size,end=str.size()-1;
while(start<=end){
char temp=str[start];
str[start]=str[end];
str[end]=temp;
start++;
end--;
}
//整体逆序
start=0,end=str.size()-1;
while(start<=end){
char temp=str[start];
str[start]=str[end];
str[end]=temp;
start++;
end--;
}
cout<<str<<endl;
return 0;
}
//该算法的思想为先把左边区域逆序再把右边区域逆序最后整体逆序即可
#include<bits/stdc++.h>
using namespace std;
int main(){
int size;
cin>>size;
string str;
cin>>str;
int start=0,end=size-1;
//逆序左半区域
while(start<=end){
char temp=str[start];
str[start]=str[end];
str[end]=temp;
start++;
end--;
}
//逆序右半区区域
start=size,end=str.size()-1;
while(start<=end){
char temp=str[start];
str[start]=str[end];
str[end]=temp;
start++;
end--;
}
//整体逆序
start=0,end=str.size()-1;
while(start<=end){
char temp=str[start];
str[start]=str[end];
str[end]=temp;
start++;
end--;
}
cout<<str<<endl;
return 0;
}