百練OJ:1007:DNA排序
題目連結:1007:DNA排序
描述
現在有一些長度相等的DNA串(只由ACGT四個字母組成),請將它們按照逆序對的數量多少排序。
逆序對指的是字串A中的兩個字元A[i]、A[j],具有i < j 且 A[i] > A[j] 的性質。如字串”ATCG“中,T和C是一個逆序對,T和G是另一個逆序對,這個字串的逆序對數為2。
第2至m+1行:每行是一個長度為n的字串 輸出按逆序對數從少到多輸出字串,逆序對數一樣多的字串按照輸入的順序輸出。 樣例輸入
10 6 AACATGAAGG TTTTGGCCAA TTTGGCCAAA GATCAGATTT CCCGGGGGGA ATCGATGCAT樣例輸出
CCCGGGGGGA AACATGAAGG GATCAGATTT ATCGATGCAT TTTTGGCCAA TTTGGCCAAA
- 解題程式碼:
def compare(s1,s2):
p=['A','C','G','T']
if p.index(s1) > p.index(s2):
return True
else:
return False
def getLength(string):
count = 0
for i in range(len(string)):
for j in range(i+1, len(string)):
if compare(string[i], string[j]):
count += 1
return count
cin = input()
n = int(cin.split()[0])
m = int(cin.split()[1])
l = list()
a = list()
for i in range(m):
string = input()
l.append(string)
a.append(int(getLength(string)))
for i in range(m):
for j in range(i):
if a[j] > a[i]:
a[j], a[i] = a[i], a[j]
l[j], l[i] = l[i], l[j]
for t in range(m):
print(l[t])
相關文章
- 百練OJ:2678:基因檢測
- OJ題之氣泡排序排序
- 百練OJ:4147:漢諾塔問題(Hanoi)——python實現漢諾塔Python
- 二叉排序樹 oj 2482排序
- SDUST OJ Problem G 動態的字串排序字串排序
- C語言訓練之杭電OJC語言
- OJ刷題之《二元選擇排序》排序
- 排序——選擇排序小練習(二)排序
- 排序——選擇排序小練習(一)排序
- 百練OJ:4003:十六進位制轉十進位制(python三行程式碼實現)Python行程
- DNA
- 演算法訓練 排序演算法排序
- JAVA小練習氣泡排序,選擇排序和插入排序Java排序
- [基礎訓練]數列排序排序
- YTU-OJ-Problem H: 虛擬函式練習:動物2函式
- OJ搭建
- YT14-先來練練手之絕對值排序排序
- 學習產品快報6月W3 | 每日一練增加OJ練習題,快來測試吧~
- C/C++經典程式訓練5---圖形列印問題 (sdut oj)C++
- C/C++程式訓練6---歌德巴赫猜想的證明 (sdut oj)C++
- FPGA DNA 獲取FPGA
- 第 7 節:流程控制-迴圈練習-百錢百雞
- 1007(優先佇列)佇列
- C/C++經典程式訓練2---斐波那契數列 (sdut oj)C++
- DNA雙序列對比
- 240個Python練習案例附原始碼(百看不如一練)Python原始碼
- C/C++練習7---求某個範圍內的所有素數 (sdut oj)C++
- Rosalind-002:DNA轉錄為RNA(Transcribing DNA into RNA)ROS
- CF1007B 題解
- DNA的三維視覺化:通過OpenGL實現一個DNA鏈視覺化
- Vue + Koa 搭建 ACM OJVueACM
- 分段函式 (sdut oj)函式
- 計算題 (sdut oj)
- 個人OJ免費搭建
- 畢業旅行 oj題
- 信奧OJ的搭建
- DNA硬碟成大資料福音:1克DNA可儲存700TB的資料硬碟大資料
- 遞推 - 動態規劃 - 百練 1088 滑雪動態規劃