标签:
Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗?
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 int main() 5 { 6 string str; 7 while(cin>>str) 8 { 9 int max=0; 10 for(int i=0;i<str.size();i++) 11 { 12 int count=0; 13 for(int j=str.size()-1;j>i;j--) 14 { 15 //判断i到j之间是否为回文串 16 if(str[i]==str[j]) 17 { 18 int begin=i; 19 int end=j; 20 while(begin<=end) 21 { 22 if(str[begin]==str[end]) 23 { 24 begin++; 25 end--; 26 } 27 else 28 break; 29 }//while 30 if(begin<end) 31 continue; 32 else 33 count=j-i+1; 34 }//if 35 36 }//for 37 if(max<count) 38 max=count; 39 }//for 40 cout<<max<<endl; 41 } 42 }
标签:
原文地址:http://www.cnblogs.com/ranranblog/p/5663980.html