您的位置:首页 > 产品设计 > UI/UE

leetcode187. Repeated DNA Sequences

2016-01-26 15:12 483 查看
All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: “ACGAATTCCG”. When studying DNA, it is sometimes useful to identify repeated sequences within the DNA.

Write a function to find all the 10-letter-long sequences (substrings) that occur more than once in a DNA molecule.

第一种方法,像切猪肉那样,将s分成两段,然后比较,可惜TLE了

class Solution(object):
def findRepeatedDnaSequences(self,s):
list_=list(s)
ans=[]
while  len(list_)>10:
sub_string="".join([list_[i] for i in range(10)])
sub_string2=s[s.find(sub_string)+len(sub_string):]
if sub_string in sub_string2 and sub_string not in ans:
ans.append(sub_string)
list_.remove(list_[0])
return ans


第二种方法,存在字典中,如果在字典中出现且在ans中未曾录入的,则ans.append(),注意细节,range(len(s)-9)而不是-10

class Solution(object):
def findRepeatedDnaSequences(self,s):
doc={}
ans=[]
if len(s)<=10:
return ans
for i in range(len(s)-9):
temp=s[i:i+10]
if temp not in doc:
doc.setdefault(temp,None)
else:
if temp not in ans:
ans.append(temp)
return ans
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: