描述
输入第1行:两个整数n和m,n(0<n<=50)表示字符串长度,m(0<m<=100)表示字符串数量
第2至m+1行:每行是一个长度为n的字符串输出按逆序对数从少到多输出字符串,逆序对数一样多的字符串按照输入的顺序输出。样例输入
10 6 AACATGAAGG TTTTGGCCAA TTTGGCCAAA GATCAGATTT CCCGGGGGGA ATCGATGCAT
样例输出
CCCGGGGGGA AACATGAAGG GATCAGATTT ATCGATGCAT TTTTGGCCAA TTTGGCCAAA
#include <iostream> #include <algorithm> using namespace std; typedef struct { string dna; int count; }DNA; DNA dna[101]; int cmp(const void *a,const void *b) { DNA *aa = (DNA *)a; DNA *bb = (DNA *)b; return aa->count-bb->count; } int main() { int n,m; char c; cin>>n>>m; for(int i = 0; i < m; i++) { cin>>dna[i].dna; dna[i].count = 0; for(int j = 0; j < n; j++) for(int k = j+1; k < n; k++) { if(dna[i].dna[j]>dna[i].dna[k]) dna[i].count++; } } qsort(dna,m,sizeof(dna[0]),cmp); for(int i = 0; i < m; i++) cout<<dna[i].dna<<endl; return 0; }
原文地址:http://www.cnblogs.com/readme-xia/p/3858081.html