Advertisement

计蒜客 T1246 DNA 序列排序

阅读量:

现有若干长度一致的DNA序列(仅包含ACGT四个字符),请依据其逆序对的数量进行排序。

所谓逆序对,是指在一个字符串中存在两个字符A[i]与A[j],满足i < j且A[i] > A[j]。例如,在字符串“ATCG”中,T与C构成一个逆序对,T与G构成另一个逆序对,因此该字符串的逆序对总数为22。

输入格式
第1行:两个整数nn和mm,其中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

核心思路是逐个字符向后查找,若发现前面存在比当前字符大的情况,则计数加一。但该方法涉及多层循环,逻辑较为复杂,容易出错。在实际操作过程中需理清流程。这道题确实令人感到困扰。有经验者指出问

全部评论 (0)

还没有任何评论哟~