• 1104--DNA排序


    问题描述:

    逆序数可以用来描述一个序列混乱程度的量。例如,“DAABEC”的逆序数为5,其中D大于它右边的4个数·,E大于它右边的1的个数,4+1=5,又如,“ZWQM”的逆序数为3+2+1+0=6.现在有许多长度一样的字符串,每个字符串里面只会出现四种字母(A,T,C,G)。要求编写程序,将这些字符串按照它们的逆序数进行排序

    输入:

    第一行包括两个正整数,第一个表示字符串长度,第二表示字符串数量

    输出:

    将每个字符串按照其逆序数进行排序,如果两个字符串的逆序数相等,则按照输入中的两者的先后顺序进行排列

    样列输入:

    10 6
    AACATGAAGG
    TTTTGGCCAA
    TTTGGCCAAA
    GATCAGATTT
    CCCGGGGGGA
    ATCGATGCAT输出:

    CCCGGGGGGA
    AACATGAAGG
    GATCAGATTT
    ATCGATGCAT
    TTTTGGCCAA
    TTTGGCCAAA

     1 #include <stdio.h>
     2 #include <string.h>
     3 struct node
     4 {
     5  int key; // key 存原字符串的编号
     6  char str[55];
     7 }dna[110];
     8 int s(char str[])
     9 {
    10 int sum=0,i,j;
    11 int len=strlen(str);
    12 int sd[50]={0};
    13 for(i=0;i<len-1;i++)
    14 {
    15 for(j=i+1;j<len;j++)
    16 {
    17 if(str[i]>str[j]) sd[i]++;
    18 }
    19 }
    20 
    21 for(i=0;i<len;i++) sum=sum+sd[i];
    22 return sum;
    23 }
    24 
    25 void sort(int res[],int m)//简单的一个排序
    26 {
    27 int i,j,t;
    28 for(i=0;i<m;i++)
    29 for(j=i+1;j<m;j++)
    30 if(res[i]>res[j])
    31 {
    32 t=res[i];
    33 res[i]=res[j];
    34 res[j]=t;
    35 }
    36 }
    37 
    38 int main(void)
    39 {
    40 int n,m,i,j;
    41 int res[110];
    42 scanf("%d %d",&n,&m);
    43 if(n>0 && n<=50 && m>0 && m<=100)
    44 {
    45 for(i=0;i<m;i++)
    46 scanf("%s",&dna[i].str);
    47 for(i=0;i<m;i++)
    48 {
    49 res[i]=s(dna[i].str);
    50 dna[i].key=res[i];
    51 }
    52 sort(res,m);
    53 for(i=0;i<m;i++)
    54 for(j=0;j<m;j++)
    55 {
    56 if(dna[j].key==res[i] )
    57 {
    58 printf("%s
    ",dna[j].str);
    59  dna[j].key=1000000;/*就是这个地方。。。原本是赋的0,那样逆序度为0 的情况就会有问题*/
    60 }
    61 }
    62 }
    63 return 0;
    64 }
  • 相关阅读:
    在Flask/Django中增加下载Excel的功能
    如何设置原创声明
    python3中用django下载文件,中文名乱码怎么办?
    关于状态机工作流的编程方法
    用python解析word文件(三):style
    用python解析word文件(二):table
    用python解析word文件(一):paragraph
    python中的轻量级定时任务调度库:schedule
    在windows下的虚拟环境中使用tk,要留神了
    压平列表
  • 原文地址:https://www.cnblogs.com/xlzhh/p/4251559.html
Copyright © 2020-2023  润新知