寻找克隆人

寻找克隆人

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描写叙述

美国的一个小镇近日被外星人突击,一部分居民被其带走并克隆,如今,科学家提取了镇上一些人的DNA,请找出当中具有同样被克隆个数的DNA个数,比如以下的9个序列

AAAAAA
ACACAC
GTTTTG
ACACAC
GTTTTG
ACACAC
ACACAC
TCCCCC
TCCCCC
当中TCCCCC,GTTTTG分别具有两个同样个体,ACACAC有四个。AAAAAA为一个,则依照行数相应输出其个数

第一行1,第二行2,第四行1,其它行输出0,共9行

输入
序列数不超过20000,每序列不超过20个字符
输入以0 0结束
输出
如题中描写叙述输出就可以
例子输入
9 6
AAAAAA
ACACAC
GTTTTG
ACACAC
GTTTTG
ACACAC
ACACAC
TCCCCC
TCCCCC
0 0
例子输出
1
2
0
1
0
0
0
0
0
代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int cmp(const void *a,const void *b)
{
	return (strcmp((char*)a,(char*)b));
}
int main()
{
	int m,n,i,num[20005];
	char str[20002][21];
	while(scanf("%d%d",&m,&n)!=EOF&&m!=0&&n!=0)
	{
		for(i=0;i<m;i++)
			scanf("%s",str[i]);
		qsort(str,m,sizeof(str[0]),cmp);
		memset(num,0,sizeof(num));
		int count=1;
		for(i=1;i<=m;i++)
		{
			if(strcmp(str[i],str[i-1])==0)
				count++;
			else
			{
				num[count]++;
				count=1;
			}
		}
		for(i=1;i<=m;i++)
			printf("%d
",num[i]);
	}
	return 0;
}


原文地址:https://www.cnblogs.com/lytwajue/p/6707427.html