poj1226
来源:互联网 发布:淘宝卖家感谢信有创意 编辑:程序博客网 时间:2024/05/18 03:00
Substrings
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 8467 Accepted: 2890
Description
You are given a number of case-sensitive strings of alphabetic characters, find the largest string X, such that either X, or its inverse can be found as a substring of any of the given strings.
Input
The first line of the input contains a single integer t (1 <= t <= 10), the number of test cases, followed by the input data for each test case. The first line of each test case contains a single integer n (1 <= n <= 100), the number of given strings, followed by n lines, each representing one string of minimum length 1 and maximum length 100. There is no extra white space before and after a string.
Output
There should be one line per test case containing the length of the largest string found.
Sample Input
23ABCDBCDFFBRCD2roseorchid
Sample Output
22 这个题目式模式匹配的一个问题,就是在多个字符串中找最大子串。。。。
# include<stdio.h># include<string.h>int main(){ int i,j,k,n,t,len,flag,minlen; char str[110][110],a[110],b[110],c[110]; scanf("%d",&t); while(t--) { scanf("%d",&n); minlen=220; flag=0; for(i=0;i<n;i++) //因为公共子串的长度不会长于最短的那个字符串,所以用minlen记录n个字符串的最短长度,并把那个最短的字符串存在c中 { scanf("%s",str[i]); len=strlen(str[i]); if(minlen>len) { minlen=len; strcpy(c,str[i]); } } for(i=minlen;i>0;i--)//i为子串的长度 { for(j=0;j<=minlen-i;j++)//当子串的长度为i时,存在minlen-i种可能的字串。例如ABCD,当子串长度为4时,子串只有一种,即ABCD;当子串的长度为3时,有ABC,BCD两种;当子串长度为2时,有AB,BC,CD三种子串 { strncpy(a,&c[j],i);//strncpy(*str1,*str2,n)就是从str2中copy i个字符赋给str1; a[i]='\0'; strcpy(b,a); b[i]='\0'; strrev(b); for(k=0;k<n;k++) { if(strstr(str[k],a)==NULL&&strstr(str[k],b)==NULL)//strstr(s1,s2)如果s2,是s1的子串,返回s1第一次出现的地址,否则返回NULL; break; } if(k==n) { flag=i; break; } } if(flag) break; } printf("%d\n",flag); } return 0;}
- poj1226
- poj1226
- poj1226
- poj1226
- poj1226
- poj1226
- poj1226
- poj1226
- POJ1226
- POJ1226 Substrings
- poj1226 Substrings
- poj1226---字符串
- poj1226(字符串)
- Substring poj1226
- POJ1226--Substrings
- poj1226 KMP
- poj1226--Substrings
- poj1226(哈希)
- java 显示当前时间 (集锦)
- Java------HashSet
- 基本排序算法
- 函数 运算符 重载
- CGAL::Manifold_with_boundary_tag
- poj1226
- 为什么用ls和du显示出来的文件大小有差别?
- java线程池
- 求两个数组的交集
- java构造方法的默认类型研究
- mysql删除不彻底的解决方法
- JDBC批处理
- full-text search
- 关于ubuntu下,7z的基本使用(备忘)解压rar格式