题意:输入N个DNA序列,每一个DNA序列长度都为60。
找到这些串的最长共同拥有子序列。
注:若找不到。或最长子序列长度小于2,则输出no significant commonalities,否则输出最长公共子串。若长度同样输出字典序最小的
思路:暴力枚举第一个DNA序列的每个子序列,用strstr()函数与其余的序列进行匹配
strstr(s,t)是在s串中找t串,若找到,返回t串第一次在s中出现的首字符的地址。假设没有找到,返回NULL
#include#include char t[65],ans[65];void cmp(){ if(strlen(ans) 0) strcpy(ans,t);}int main(){ int n,m,i,j,k,a; char s[12][65]; scanf("%d",&n); while(n--){ scanf("%d",&m); for(i=0;i =3) printf("%s\n",ans); else printf("no significant commonalities\n"); } return 0;}
版权声明:本文博客原创文章,博客,未经同意,不得转载。