测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A40996. 密码截获

填空题 中等

题目描述

密码截获

题目描述

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

输入格式

测试数据有若干行字符串,包括字母,数字,符号。(字母区分大小写)

输出格式

与输入相对应每一行输出一个整数,代表最长有效密码串的长度。

样例输入

ABBA
12ABBA
A
ABAKK
51233214
abaaab

样例输出

4
4
1
3
6
5

参考答案

#include <stdio.h> int huiwen(char *str,int head,int tail) { if(head==tail||head>tail) return 1; if(str[head]==str[tail]) return huiwen(str,head+1,tail-1); return 0; }//递归判断回文 int main() { char password[500]; int i,j,maxlen; while(scanf("%s",&password)!=EOF) { maxlen=1; for(i=0;password[i]!='\0';i++) { for(j=i;password[j]!='\0';j++) { if(huiwen(password,i,j)&&j-i+1>maxlen) { maxlen=j-i+1; } } } printf("%d\n",maxlen); } }
上一题 下一题