回文数 找最长回文子串
2015-08-09 10:47
381 查看
/*
Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗?
*/
Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗?
*/
// OJ6_1.cpp : Defines the entry point for the console application. // #include "stdafx.h" /* #include <iostream> using namespace std; int Maxsubstr(char a[],char b[]) { int start1,start2; int count=0,Max=0; for(int i=0;a[i]!='\0';i++) for(int j=0;b[j]!='\0';j++) { start1=i;start2=j; while(a[start1]==b[start2] && start1<strlen(a) && start2<strlen(b)) { start1++; start2++; count++; } if(count>Max) Max=count; count=0; } return Max; } char *Switch(char a[]) { int n=strlen(a); char temp; for(int i=0;i<n/2;i++) { temp=a[i]; a[i]=a[n-1-i]; a[n-1-i]=temp; } return a; } int main() { char a[100]; char b[100]; char *c; gets(a); strcpy(b,a); c=Switch(a); cout<<Maxsubstr(b,c); return 0; } */ # include<stdio.h> # include<string.h> int main(void) { char a[300]; int i,j,max,num,m; while(gets(a)) { max = num = 0; m = strlen(a); for(i=0;i<m;i++) { for(j=0;i-j>=0 && i+j<m;j++) //对奇数的处理 { if(a[i-j]!=a[i+j]) break; if(2*j+1>max) max = 2*j+1; //12321,该字符串回文数为5 } for(j=0;i-j>=0 && i+j+1<m;j++) //对回文数是偶数的处理 { if(a[i-j]!=a[i+j+1]) break; if(2*j+2>max) max = 2*j+2; if(a[i+j+1+1]=='\0'&&max>=m-i) i=m;//输入字符串123321,即a={1,2,3,3,2,1}回文数为6, } } printf("%d\n",max); memset(a,0,sizeof(a)); } return 0; }
相关文章推荐
- DOM创建表格
- android简单可操作的屏幕适配
- HDU 4981/BC 6A Goffi and Median
- 【Java多线程】之五:wait, notify and notifyAll
- HDU 5366 The mook jong 递推 动态规划
- 工厂方法模式
- mybatis返回HashMap结果类型与映射
- POJ2251—— BFS——Dungeon Master
- Best Time to Buy and Sell Stock 系列
- ubuntu 14.04 删除ibus输入法引发的问题及解决方法
- 河南省中南助滤剂有限公司召开完善标准优化流程改善物流管理誓师大会
- 重学java23种设计模式(14)命令模式
- opencv在mfc界面嵌入式显示图像
- Vijos1002 过河
- poj--2019Cornfields+二维RMQ问题
- codeforces Gym100589H Count Subarrays 树状数组/线段树+离散化
- 0-1 gmock run env for VS
- 横向列表菜单
- 张国祥老师在咨询客户河南省中南助滤剂公司组织公司化运作落地分享会
- NYOJ 17 单调递增最长子序列