重复的dna序列(leetcode)
程序员文章站
2022-06-08 12:24:32
...
此题就是找该字符串的字串,出现过一次,并且其字串长度为10
分析:
方法一
字串固定长度为10 ,可以从此入手,构造滑动窗口。然后利用map来记录该字串出现的次数,然后当字串出现次数大于一次,就记录下来(用set)记录,可以去除重复。
set中记录的就是最后的答案。
class Solution {
public List<String> findRepeatedDnaSequences(String s) {
Map<String,Integer> map=new HashMap();
Set<String> res=new HashSet();
for(int i=0;i<=s.length()-10;i++){
String sub=s.substring(i,i+10);
if(map.containsKey(sub)){
res.add(sub);
}else{
map.put(sub,1);
}
}
return new ArrayList<String>(res);
}
}
推荐阅读
-
【leetcode 简单】第十八题 删除排序链表中的重复元素
-
leetcode的Hot100系列--3. 无重复字符的最长子串--滑动窗口
-
python消除序列的重复值并保持顺序不变的实例
-
python算法(输入一个包含重复数字的序列返回不重复的全排列)
-
#leetcode刷题之路3-无重复字符的最长子串
-
[LeetCode] 查找重复的电子邮箱
-
php数组函数序列之array_unique() - 去除数组中重复的元素值
-
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
-
[LeetCode] 196.删除重复的电子邮箱
-
Leetcode刷题记录——面试题48. 最长不含重复字符的子字符串