Problem: 187. 重复的DNA序列
每日一题。(2023年11月5日-GoodLuck)
思路
子串问题->滑动窗口(固定长度)->解决出现次数不止大于1(在1的基础上又出现了即满足)
Code
class Solution {
public List<String> findRepeatedDnaSequences(String s) {
int len = s.length();
List<String> res = new ArrayList<>();
Map<String, Integer> map = new HashMap<>();
// 滑动窗口
for (int left=0;left+10<=len;left++) {
int right = left+10;// 固定的滑动窗口
String temp = s.substring(left,right);// 序列
int cnt = map.getOrDefault(temp, 0);// 得到该序列出现次数
if (cnt == 1){
res.add(temp);// 不止一次,记录
}
map.put(temp, cnt + 1);
}
return res;
}
}