日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

百练OJ:1007:DNA排序

發布時間:2025/3/19 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 百练OJ:1007:DNA排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:1007:DNA排序

描述

現在有一些長度相等的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
  • 解題代碼:def compare(s1,s2):p=['A','C','G','T']if p.index(s1) > p.index(s2):return Trueelse:return False def getLength(string):count = 0for i in range(len(string)):for j in range(i+1, len(string)):if compare(string[i], string[j]):count += 1return 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:1007:DNA排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。