2016-09-06 2 views
-4

Увядшие символы в строке представлены символом '.' где в качестве других символов используются латинские алфавиты с нижним регистром i.e ['a' - 'z']. Может состоять одна или несколько выцветших символов. Я хочу построить лексикографически наименьший палиндром, заполнив каждый из выцветшего символа ('.') латинским алфавитом в нижнем регистре. Я пробую еще 3 часа, но я получаю неверный вердикт. Я не могу исправить свою проблему. Может кто-нибудь мне помочь?Увядшие палиндромы, почему я ошибаюсь?

#include<bits/stdc++.h> 
using namespace std; 

int main() 
{ 
    //freopen("a.in", "r", stdin); 
    //freopen("a.out", "w", stdout); 
    int test; 
    string s; 
    cin>>test; 
    while(test--) 
    { 
     cin>>s; 
     for(int i=0; i<s.size()/2; i++) 
     { 
      if(s[i]=='.') 
      { 
       if(s[i]==s[s.size()-1-i]) 
       { 
        s[i]='a'; 
        s[s.size()-1-i]='a'; 
       } 
      } 
     } 
     if(s.size()%2) s[s.size()/2]='a'; 
     //cout<<"s = "<<s<<endl; 


     for(int i=0; i<s.size()/2; i++)//left string checking 
     { 
      if(s[i]=='.') 
      { 
       s[i]=s[s.size()-1-i]; 
      } 
     } 

     for(int i=s.size()-1,k=0; i>s.size()/2; i--,k++)//Right string checking 
     { 
      if(s[i]=='.') 
      { 
       s[i]=s[k]; 
      } 
     } 

     //cout<<" ss = "<<s<<endl; 

     bool flag=true; 
     for(int i=0; i<s.size()/2; i++) 
     { 
      if(s[i]!=s[s.size()-1-i]) 
      { 
       flag=false; 
      } 
     } 

     if(flag==false) cout<<"-1"<<endl; 
     else cout<<s<<endl; 

    } 
} 

IDEOne link

+0

Не могли бы вы разместить здесь свой код, некоторые люди могут не захотеть щелкнуть ссылку третьей стороной, ваши функции и макросы даже не используются – dvhh

+0

Уважаемый, dvhh! Я пытаюсь поставить свой код здесь, но вот показать сообщение слишком большие данные. – Anik

+0

Я только что поставил код в ваш вопрос? (Я также взял на себя смелость удалить кажущиеся ненужными биты) – dvhh

ответ

0

Correction Line :: 66 вы кладете средний персонаж всегда «a'.We должен поставить символ 'а', когда среднее положение тусклые характер. Может помочь вам.

+0

I исправить его и получить Принятый вердикт. Спасибо. – Anik

Смежные вопросы