首页 > 代码库 > 华为测试 字符串运用-密码截取
华为测试 字符串运用-密码截取
Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗?
输入一个字符串
返回有效密码串的最大长度样例输入:abba
样例输出:4
#include<iostream> #include<string> using namespace std; int main() { string str; cin>>str; string temp; int SIZE,BigLen=0; bool sign; for(string::size_type index1=0;index1!=str.size();++index1) { for(string::size_type index2=index1;index2!=str.size();++index2) { sign=1; temp.push_back(str[index2]); SIZE=temp.size(); if(SIZE==1) { if(BigLen==0) ++BigLen; } else if(SIZE>1) { for(string::size_type index3=0;index3!=SIZE/2;++index3) { if(temp[index3]!=temp[SIZE-1-index3]) sign=0; } if(sign==1) { if(SIZE>BigLen) BigLen=SIZE; } } } temp.clear(); } cout<<BigLen<<endl; return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。