zoukankan      html  css  js  c++  java
  • poj 3080 Blue Jeans

    题目大意是:给你几个DNA序列,让你找到最长的公共子序列。这题的数据量不大,可以用暴搜,就是用到了一个字符串处理函数strstr,它是查找子串在字符串中的位子的,返回值为子串首字母的下标。记下这题留待以后参考.

    代码:

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    int main()
    {
        int n,m,i,j,k,sum;
        char str[14][65];
        char s[65],st[65];
    
        scanf("%d",&n);
        while(n--)
        {
            scanf ("%d",&m);
            getchar();
            for (i=0;i<m;i++)
            {
                scanf("%s",str[i]);
                //printf("%s\n",str[i]);
                getchar();
            }
    
            int len = strlen(str[0]);
            int maxx=0;
            for(i=0;i<len;i++)
            {
                for(j=i;j<len;j++)
                {
                    sum=0;
                    for(k=i;k<=j;k++)
                    s[sum++]=str[0][k];
                    s[sum]=0;
                    for(k=1;k<m;k++)
                    if(strstr(str[k],s)==0)break;
                    if(k==m&&sum>maxx)
                    {
                        maxx=sum;
                        strcpy(st,s);
                    }
                    else if(k==m&&sum==maxx)
                    {
                        if(strcmp(st,s)>0)
                        strcpy(st,s);
                    }
                }
            }
            if(maxx<3)
            printf("no significant commonalities\n");
            else
            printf("%s\n",st);
        }
        return 0;
    }
  • 相关阅读:
    Matrix Chain Multiplication[HDU1082]
    Color a Tree[HDU1055]
    Piggy-Bank[HDU1114]
    Catching Fish[HDU1077]
    用单位圆覆盖尽量多的点
    LianLianKan[HDU4272]
    Travelling
    求多边形面积
    方格取数(1)
    Pebbles
  • 原文地址:https://www.cnblogs.com/misty1/p/2467000.html
Copyright © 2011-2022 走看看