1.题目
图片来源:https://blog.csdn.net/qq_22080999/article/details/80815637
2.实现思路
step1:枚举出所有的长度为10的子串。
step2:定义一个set存放些子串,定义一个list存放出现次数大于1的子串。
step3:遍历s所有的子串
- 如果set中已经出现过对应的子串,则向list中添加这个子串。
- 否则向set中添加这个子串。
3.代码实现
public class FindRepeatedDNASequences {
public List<String> findRepeatedDNASequences(String s) {
Set set=new HashSet();
Set subSet=new HashSet();
for(int i=0;i+10<s.length();i++){
String item=s.substring(i,i+10);
if(!set.contains(item)){
set.add(item);
}else{
subSet.add(item);
}
}
return new ArrayList<>(subSet);
}
@Test
public void test(){
List list=findRepeatedDNASequences("AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT");
System.out.println(list.toString());
}
}