LeetCode演算法題187 重複的DNA序列解析

2021-09-11 22:50:49 字數 1020 閱讀 7683

所有 dna 由一系列縮寫為 a,c,g 和 t 的核苷酸組成,例如:「acgaattccg」。在研究 dna 時,識別 dna 中的重複序列有時會對研究非常有幫助。

編寫乙個函式來查詢 dna 分子中所有出現超多一次的10個字母長的序列(子串)。

示例:

輸入: s = "aaaaacccccaaaaaccccccaaaaagggttt"

輸出: ["aaaaaccccc", "cccccaaaaa"]

這個題思想較為簡答,從第十個開始遍歷,如果過去到現在的10個長序列出現在集合中,那麼就放到結果中,如果沒出現過,就放到集合中。這樣稍微有些耗費空間,c++使用二進位制數字代表每乙個字元,其後三位ascii碼來表示數字,這樣十個字母只需要乙個int即可表示。

c++源**:

class

solution

return vector

(res.

begin()

, res.

end())

;}};

python3源**:

class

solution

:def

findrepeateddnasequences

(self, s:

str)

-> list[

str]

: res =

set(

) m =

set(

) cur =

""for i in

range(9

,len

(s))

: cur = s[i-

9:i+1]

if cur in m:

res.add(cur)

else

: m.add(cur)

return

list

(res)

LeetCode刷題之187 重複的DNA序列

我不知道將去向何方,但我已在路上!輸入 s aaaaacccccaaaaaccccccaaaaagggttt 輸出 aaaaaccccc cccccaaaaa class solution def findrepeateddnasequences self,s str list str a set ...

leetcode187 重複的DNA序列

所有 dna 由一系列縮寫為 a,c,g 和 t 的核苷酸組成,例如 acgaattccg 在研究 dna 時,識別 dna 中的重複序列有時會對研究非常有幫助。編寫乙個函式來查詢 dna 分子中所有出現超多一次的10個字母長的序列 子串 示例 輸入 s aaaaacccccaaaaacccccca...

Leetcode 187 重複的DNA序列

所有 dna 由一系列縮寫為 a,c,g 和 t 的核苷酸組成,例如 acgaattccg 在研究 dna 時,識別 dna 中的重複序列有時會對研究非常有幫助。編寫乙個函式來查詢 dna 分子中所有出現超過一次的10個字母長的序列 子串 示例 輸入 s aaaaacccccaaaaacccccca...