1007:DNA排序
生活随笔
收集整理的這篇文章主要介紹了
1007:DNA排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1007:DNA排序
查看 提交 統計 提示 提問
總時間限制: 1000ms 內存限制: 65536kB
描述
現在有一些長度相等的DNA串(只由ACGT四個字母組成),請將它們按照逆序對的數量多少排序。
逆序對指的是字符串A中的兩個字符A[i]、A[j],具有i < j 且 A[i] > A[j] 的性質。如字符串”ATCG“中,T和C是一個逆序對,T和G是另一個逆序對,這個字符串的逆序對數為2。
輸入
第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
這道題就是按照逆序對數從小到大的順序,輸出對應的字符串。。。
關鍵在于標記完哪個字符串對應的逆序對數,再將這個數從小到大排序,再按照這個逆序對數目的從小到大輸出對應的字符串。。。
下面對于該題,c語言以及Python進行解答:
c語言:
Python語言:
n,m=map(int,input().split()) a=[] num=[] book=[] for i in range(2500):book.append(0) for i in range(m):a.append(input()) for i in range(m):num.append(0)for j in range(n):for k in range(j+1,n):if a[i][j]>a[i][k]:num[i]+=1count=num[i]book[count]=i #對num數組排序(從小到大) num.sort() for i in range(m):count=num[i]pos=book[count]print(a[pos])總結
以上是生活随笔為你收集整理的1007:DNA排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机组成原理微控制器实验报告,计算机组
- 下一篇: cad lisp 界址点号_CAD如何自