В С++. Помогите плииииз.
Как вы помните, месклениты отправились в экспедицию. Однажды руководителю экспедиции потребовалось отправить на разведку специальный отряд, состоящих из лучших мескленитов. Для этого он выстроил всю команду в шеренгу.
Цвет панциря каждого мескленита обозначается заглавной латинской буквой (от "A" до "Z" ). В целях экономии времени руководитель собирается выбрать из шеренги несколько подряд стоящих. Кроме того, он считает, что разведка будет более удачной, если выбранный отряд будет симметричен по цветам панцирей. Например, отряд "RGBGR" будет симметричным, а отряд "RGRB" – нет.
Требуется выбрать из шеренги мескленитов максимально возможный отряд, удволетворяющий данным условиям.
Входные данные
Дана строка, длина которой не превосходит 255 символов – цвета мескленитов в шеренге.
Выходные данные
Выходные данные представляют собой строку – выбраный отряд мескленитов. Если возможных вариантов ответа несколько, то требуется вывести находящийся ближе к началу шеренги.
Answers & Comments
Verified answer
{Отряд — формирование, состоящее из нескольких человек, достаточно большой численности, сформированное с той или иной целью}//Но будь по Вашему, мне не сложно
//Dev-C++ 4.9.9.2
#include <iostream>
#include <string>
using namespace std;
int main(){
string s,smax,sp;
int z=0;
int max=0;
bool b=true;
bool bsub=false;
cin>>s;
for(int i=0;i<s.length();i++)
for(int j=i+1;j<s.length();j++){
if(s[i]==s[j]){
sp=s.substr(i,j-i+1);
b=true;
z=0;
while((z<=(sp.length()-1)/2)&&b){
b=(sp[z]==sp[sp.length()-z-1]);
z++;}
if((b==true)&&(max<sp.length())){
max=sp.length();
smax="";
smax=sp;
bsub=true;
}
b=true;
z=0;}}
if(bsub==true)cout<<smax;
else
cout<<s[0];
cin.get();
cin.get();
return 0;
}
Пример ввода 1:
CKACCANCKACBCAN
Пример вывода 1:
ACBCA
Пример ввода 2:
С
Пример вывода 2:
C