首页 > 其他分享 >187. 重复的DNA序列

187. 重复的DNA序列

时间:2023-01-15 13:12:37浏览次数:36  
标签:存储 遍历 DNA 加入 res memed 187 序列 用来

问题描述

https://leetcode.cn/problems/repeated-dna-sequences/description/

解题思路

这同样是一个滑动窗口的典型问题。

首先我们看一下数据规模,进行一下异常处理。

我们设置一个res用来存储最后的结果,一个se用来存储遍历过的字符串,方便判断是否重复,一个memed用来存储已经添加到res中的字符串,同样是用来减少判定是否已经加入到res中的时间。

然后我们开始遍历就完事了。如果它没有被遍历过,就加入到se中。如果它被遍历过,就判定一下它是否加入到过res中,如果没加入过,就加入,同时更新memed。

代码

class Solution:
    def findRepeatedDnaSequences(self, s: str):
        if len(s) <= 10:
            return []
        # 存储最后结果
        res = []
        # 存储遍历过的字符串
        se = set()
        # 存储res中的字符串(加速查找)
        memed = set()
        for i in range(9, len(s)):
            cur = s[i-9:i+1]
            if cur not in se:
                se.add(cur)
            elif cur not in memed:
                res.append(cur)
                memed.add(cur)
        return res

 

标签:存储,遍历,DNA,加入,res,memed,187,序列,用来
From: https://www.cnblogs.com/bjfu-vth/p/17053349.html

相关文章