Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Created by Егор Червяков on 25.05.2021.
- //
- #include <iostream>
- #include <string>
- using namespace std;
- string reverse(string s){
- string s1=s;
- for(int i=0;i<s.length()/2;i++){
- s1[i]=s[s.length()-1-i];
- s1[s.length()-1-i]=s[i];
- }
- return s1;
- }
- int main(){
- string s1;
- cin>>s1;
- int max_len=1;
- string max_str;
- string buff_str;
- string buff_str1;
- cout<<reverse(s1)<<" ";
- if(s1.length()==1){
- cout<<s1+s1;
- return 0;
- }
- buff_str.assign(s1,0,s1.length());
- if(buff_str.length()%2==0){
- buff_str1.assign(buff_str,0,buff_str.length()/2);
- buff_str1=reverse(buff_str1);
- buff_str.erase(0,buff_str.length()/2);
- if(buff_str==buff_str1){
- for(int i=1;i<s1.length()-1;i++){
- max_str.assign(s1,0,i);
- max_str=s1+reverse(max_str);
- buff_str.assign(max_str,i,max_str.length());
- if(buff_str.length()%2==0){
- buff_str1.assign(buff_str,0,buff_str.length()/2);
- buff_str1=reverse(buff_str1);
- buff_str.erase(0,buff_str.length()/2);
- if(buff_str==buff_str1){
- cout<<max_str;
- return 0;
- }
- }else{
- buff_str1.assign(buff_str,0,buff_str.length()/2);
- buff_str1=reverse(buff_str1);
- buff_str.erase(0,buff_str.length()/2+1);
- if(buff_str==buff_str1){
- cout<<max_str;
- return 0;
- }
- }
- }
- }
- }else{
- buff_str1.assign(buff_str,0,buff_str.length()/2);
- buff_str1=reverse(buff_str1);
- buff_str.erase(0,buff_str.length()/2+1);
- if(buff_str==buff_str1){
- for(int i=1;i<s1.length()-1;i++){
- max_str.assign(s1,0,i);
- max_str=s1+reverse(max_str);
- buff_str.assign(max_str,i,max_str.length());
- if(buff_str.length()%2==0){
- buff_str1.assign(buff_str,0,buff_str.length()/2);
- buff_str1=reverse(buff_str1);
- buff_str.erase(0,buff_str.length()/2);
- if(buff_str==buff_str1){
- cout<<max_str;
- return 0;
- }
- }else{
- buff_str1.assign(buff_str,0,buff_str.length()/2);
- buff_str1=reverse(buff_str1);
- buff_str.erase(0,buff_str.length()/2+1);
- if(buff_str==buff_str1){
- cout<<max_str;
- return 0;
- }
- }
- }
- }
- }
- for(int i=s1.length()-2;i>=0;i--){
- buff_str.assign(s1,i,s1.length());
- if(buff_str.length()%2==0){
- buff_str1.assign(buff_str,0,buff_str.length()/2);
- buff_str1=reverse(buff_str1);
- buff_str.erase(0,buff_str.length()/2);
- if(buff_str==buff_str1){
- max_len=s1.length()-i;
- }
- }else{
- buff_str1.assign(buff_str,0,buff_str.length()/2);
- buff_str1=reverse(buff_str1);
- buff_str.erase(0,buff_str.length()/2+1);
- if(buff_str==buff_str1){
- max_len=s1.length()-i;
- }
- }
- }
- buff_str.assign(s1,0,s1.length()-max_len);
- buff_str=reverse(buff_str);
- cout<<reverse(s1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement