importjava.util.*;publicclassTest{
publicstaticvoidmain(String[] args){
}}classSolution{
publicList<String>findRepeatedDnaSequences(String s){
Set<String> set1 =newHashSet<>();Set<String> set2 =newHashSet<>();for(int i =0; i <= s.length()-10; i++){
if(!set1.add(s.substring(i, i +10))){
set2.add(s.substring(i, i +10));}}List<String> res =newArrayList<>();for(String str : set2){
res.add(str);}return res;}}classSolution1{
publicList<String>findRepeatedDnaSequences(String s){
List<String> res =newArrayList<>();Map<String,Integer> map =newHashMap<>();for(int i =0; i <= s.length()-10; i++){
String str = s.substring(i, i +10);
map.put(str, map.getOrDefault(str,0)+1);if(map.get(str)==2){
res.add(str);}}return res;}}classSolution2{
publicList<String>findRepeatedDnaSequences(String s){
if(s.length()<=10){
returnnewArrayList<>();}Map<Character,Integer> bin =newHashMap<Character,Integer>(){
{
put('A',0);put('C',1);put('G',2);put('T',3);}};List<String> res =newArrayList<>();int value =0;for(int i =0; i <9; i++){
value =(value <<2)| bin.get(s.charAt(i));}Map<Integer,Integer> map =newHashMap<>();for(int i =0; i <= s.length()-10; i++){
value =((value <<2)| bin.get(s.charAt(9+ i)))&((1<<20)-1);
map.put(value, map.getOrDefault(value,0)+1);if(map.get(value)==2){
res.add(s.substring(i, i +10));}}return res;}}