题目:DNA排序
总时间限制: 1000ms 内存限制: 65536kB
描述
给出一系列基因序列,由A,C,G,T四种字符组成。对于每一个序列,定义其逆序对如下:
序列中任意一对字符X和Y,若Y在X的右边(不一定相邻)且Y < X,则称X和Y为一个逆序对。
例如GAC这个序列,其中GC,GA都是逆序对。
一个序列的逆序对越多,则认为其"无序度"越高。你的任务是将基因按照无序度从小到大的顺序排序,如果存在无序度相同的序列,则按照原始输入顺序输出。
输入
首先是基因序列的长度n(0 < n <= 50)和基因序列的个数m ( 0 < m <= 100).
然后依次是这m个基因序列.
输出
输出排序后的m个基因序列。
代码:
n,m=input().split()
n=int(n)
m=int(m)
s=0
ssum=[]
dic={}
l=[]
import copy
for i in range(m):
a=list(input())
l.append(a)
#print(l)
for i in range(m):
b=copy.deepcopy(l[i])
for x in range(n):
c=b[0]
b.remove(b[0])
if c=='C':
s=s+b.count('A')
elif c=='G':
s=s+b.count('A')+b.count('C')
elif c=='T':
s=s+b.count('A')+b.count('C')+b.count('G')
if len(ssum)==0:
ssum=[s]
else:
ssum.append(s)
if s in dic:
dic[s].append(''.join(a[m]))
else:
dic[s]=''.join(l[i])
s=0
#print(dic)
ssum.sort()
for i in ssum:
if len(dic[i])>1:
print(''.join(dic[i]))
else:
print(''.join(dic[i]))
运行结果是对的但是
在open judge上是runtime error ……
请问是哪里错了呢?
输入的内容是什么,还有报错的完整提示是什么,最好详尽点,才可以重现问题。