所有 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...