您的位置:首页 > 其它

华为OJ基础题-字符串运用-密码截取

2015-11-19 15:06 120 查看
Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗?

void hwOJ(){
string a = "babaaab",b;
b = a;
reverse(a.begin(), a.end());
int st1 = 0, st2 = 0;
int count = 0,MAX=0;
int len = a.length();
for (int i = 0; i < len; ++i){
for (int j = 0; j < len; ++j){
st1 = i; st2 = j;
while (a[st1] == b[st2] && st1 < len&&st2 < len){
++st1;
++st2;
++count;
}
if (count > MAX)
MAX = count;
count = 0;
}
}
cout<<MAX;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: