zoukankan      html  css  js  c++  java
  • 字典序(摘)

    长度为n的环状串有n镇南关表示法,分别为从某个位置开始顺时针得到。在这些表示法中,字典序最小的称为“最小表示”。

    输入一个长度为n(n<=100)的环状DNA串(只包含A,C,G,T)的一种表示法,你的任务是输出该环状串的最小表示。例如,CTCC的最小表示是CCCT。

        字典序就是字符串在字典中的顺序。

        一般地,对于两个字符串,从第一个字符开始比较,当某一个位置的字符不同时,该位置字符较小的串,字典序较小。

        eg.  abc<bcd

              hi<his

              1247<125

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #define maxn 105
    int less(const char* s,int p,int q)          //环状串s的表示法p是否比表示法q的字典序小
    {
        int n=strlen(s);
        for(int i=0;i<n;i++)
            if(s[(p+i)%n]!=s[(q+1)%n])
                return s[(p+i)%n]<s[(q+i)%n];         //从s[p]开始和从s[q]开始的字符串逐一比较
        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=0;i<n;i++)
                if(less(s,i,ans))ans=i;
            for(int i=0;i<n;i++)
                putchar(s[(i+ans)%n]);
            putchar('
    ');
        }
        //system("pause");
        return 0;
    }


  • 相关阅读:
    java版扫雷
    隔离级别
    Servlet Analysis
    Session&Cookie
    centos上部署应用到tomcat
    在CentOS 7中安装与配置Tomcat-8.5方法
    centos7中安装、配置jdk(转载)
    java RE Validation常用
    hello2 source Analysis
    serlvet中的过滤器filter
  • 原文地址:https://www.cnblogs.com/farewell-farewell/p/5199134.html
Copyright © 2011-2022 走看看