Catcher是MCA國的情報員,他工作時發現敵國會用一些對稱的密碼進行通信,比如像這些ABBA,ABA,A,123321,但是他們有時會在開始或結束時加入一些無關的字符以防止別國破解。比如進行下列變化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因為截獲的串太長了,而且存在多種可能的情況(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量實在是太大了,他只能向電腦高手求助,你能幫Catcher找出最長的有效密碼串嗎?
輸入描述: 輸入一個字符串
輸出描述: 返回有效密碼串的最大長度
輸入例子: ABBA
輸出例子: 4
#include <iostream>#include <string>#include <set>#include <algorithm>using namespace std;bool isEqual(string str){ int i; int n = str.length(); for(i=0;i<n/2;++i) { if(str[i]!=str[n-1-i]) break; } if(i==n/2) return true; else return false;}int main(){ string str; int k = 0,i; set<int>vec; while(getline(cin,str)) { vec.clear(); for(i=0;i<str.length();++i) { k = i; while(k<=str.length()) { if(isEqual(str.substr(i,i+k))) { vec.insert(str.substr(i,i+k).length()); } ++k; } } set<int>::iterator it = vec.end(); it--; cout<<*it<<endl; } return 0;}新聞熱點
疑難解答