本文主要是介绍187. 重复的DNA序列-滑动窗口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Problem: 187. 重复的DNA序列
每日一题。(2023年11月5日-GoodLuck)
文章目录
- 思路
- Code
思路
子串问题->滑动窗口(固定长度)->解决出现次数不止大于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;}
}
这篇关于187. 重复的DNA序列-滑动窗口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!