题目在这:https://leetcode-cn.com/problems/repeated-dna-sequences/
思路分析:一道找子串的问题。
说一个可以用的方法,偷鸡的方法就不说了。
我们可以维护一个大小为10的滑动窗口。
每次判断窗口内的字符串是否出现过,如果没有则加入哈希表,如果出现过,则哈希表中对应的val 加1.最后把所有val大于1的都输出就行了~。
完整代码
class Solution:
def findRepeatedDnaSequences(self, s: str) -> List[str]:
hs = {}
if len(s) < 10:
return []
i = 0
j = 10
# i j 维护滑动窗口的头和尾。
while j != len(s)+1:
if s[i:j] not in hs:
hs[s[i:j]] = 1
else:
hs[s[i:j]] += 1
i += 1
j += 1
res = []
for i in hs:
if hs[i] >1:
res.append(i)
return res
这道题N天前写的,可以直接在前面的while判断 ,如果出现过则说明val必然大于1了,直接加入数组就行,没必要后面再加for了。。。。。就仅作参考吧~



