zoukankan      html  css  js  c++  java
  • 例题 3-6 环状序列

    以后 你们可以叫我   袁大婶   没错  就是这么猛.

    ------下面附上 我的代码

    /*给一个长度为n的DNA环状串,请你输出字典序最小的 那个  序列*/
    /*你怎么想?         不开字符串 尽量减少时间空间复杂度   打败   刘大婶*/
    /*  用两个标记变量  一个字母  然后比较 大小  比较小的 那一个储存下来   然后让比较大的那一个 ++    开始对下一个进行遍历   但是时间复杂度应该比较高  能达到n^2     */
    /*CCCC*/
    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int q1,q,l,t,e,i,j,m,n;
        char a[200];
        scanf("%d",&t);
        while(t--)
        {
            scanf("%s",a);    //输入     DNA串
            l=strlen(a);
            m=l;
            q=0;
            q1=1;
            m--;
            while(m--)
            {
            for(e=0,i=q,j=q1;e<l;i++,j++)
            {
                if(i>=l||j>=l)//很关键的一个东西,用于实现圆环
                {
                    i=i%l;
                    j=j%l;
                }
                if(a[i]>a[j])         //一直都让  q  为字典序最小的首字母的开头.
                {
                    q=q1;
                    q1++;
                    break;
                }
                if(a[i]<a[j])
                {
                    q1++;
                    break;
                }
            }
            if(e==l)
                q1++;
            }
            for(i=0;i<l;q++,i++)
            {
                q=q%l;
                printf("%c",a[q]);
            }
            printf("
    ");
        }
    }

    下面附上  刘大婶的


    代码并且 还有值得学习之处

    #include<stdio.h>
    #include<string.h>
    #define maxn 105
    int less(char *s,int p,int q)  //
    {
        int n=strlen(s);        //测量  实际数组的长度.
        for(int i=0;i<n;i++)                 //
            if(s[(p+i)%n]!=s[(q+i)%n])          //  
            return s[(p+i)%n]<s[(q+i)%n];   //
        return 0;//相等.
    }
    int main()
    {
        int t;
        char s[maxn];
        scanf("%d",&t);
        while(t--)
        {
            scanf("%s",s);
            int ans=0;
            int n=strlen(s);
            for(int i=1;i<n;i++)
                if(less(s,i,ans))
                ans=i;
            for(int i=0;i<n;i++)
                putchar(s[(i+ans)%n]);
            putchar('
    ');
        }
        return 0;
    }
  • 相关阅读:
    Jqgrid 属性描述
    Log4Net 配置独立文件
    jqgrid中 colModel
    jqgrid jsonReader
    sql 分割字符串
    网页默认浏览器以IE那个版本查看
    objectc基础:property,assign,copy,retain,release
    Sending 'ccColor4B' (aka 'struct_ccColor4B') to parameter of incompatible type 'CIColor *'
    CCAnimate 和 CCAnimation
    什么时候用removeUnusedSpriteFrames和removeUnusedTextures
  • 原文地址:https://www.cnblogs.com/A-FM/p/5152219.html
Copyright © 2011-2022 走看看