Leetcode练习(Python):哈希表类:第187题:重复的DNA序列:所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。 编写一个函数来查找 DNA 分子中所有出现超过一次的 10 个字母长的序列(子串)。

题目:
重复的DNA序列:所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。  编写一个函数来查找 DNA 分子中所有出现超过一次的 10 个字母长的序列(子串)。  
思路:
滑动窗口法。
程序:
class Solution:
    def findRepeatedDnaSequences(self, s: str) -> List[str]:
        length = len(s)
        if length <= 10:
            return []
        findOut = set()
        result = set()
        windowLength = 10
        for index in range(length - windowLength + 1):
            if s[index : index + windowLength] in findOut:
                result.add(s[index : index + windowLength])
            else:
                findOut.add(s[index : index + windowLength])
        return list(result)
原文地址:https://www.cnblogs.com/zhuozige/p/12803792.html