所有 DNA 都由一系列缩写为 ‘A’,’C’,’G’ 和 ‘T’ 的核苷酸组成,例如:"ACGAATTCCG"。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。

编写一个函数来找出所有目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。

示例 1:

输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
输出:["AAAAACCCCC","CCCCCAAAAA"]

示例 2:

输入:s = "AAAAAAAAAAAAA"
输出:["AAAAAAAAAA"]

提示:

  • 0 <= s.length <= 105
  • s[i] 为 ‘A’、’C’、’G’ 或 ‘T’

Python 解答:
1.暴力

class Solution:
    def findRepeatedDnaSequences(self, s: str) -> List[str]:
        adic = {}
        for i in range(len(s)-9):
            if s[i:i+10] not in adic.keys():
                adic[s[i:i+10]] = 1
            else:
                adic[s[i:i+10]] += 1
        return [item for item in adic.keys() if adic[item] > 1]
最后修改日期: 2021年8月22日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。