class Solution {
    HashMap hm;
    HashSet ls; 
    public List findRepeatedDnaSequences(String s) {
        hm = new HashMap();
        ls = new HashSet();
        for (int i = 0; i < s.length(); i++) {                             // i + 10 <= s.length() 改进
            int j = i + 10;                                                    //降低复杂度   
            if (j <= s.length()) {                                          
                if (hm.containsKey(String.valueOf(s.substring(i, j)))&&hm.get(String.valueOf(s.substring(i, j)))!=2) {
                    ls.add(String.valueOf(s.substring(i, j)));             //这里我也不知道为什么会出现重复 导致我用哈希表
                    hm.replace(String.valueOf(s.substring(i, j)), 2);
                } else
                    hm.put(String.valueOf(s.substring(i, j)), 1);
            }
        }
        return new ArrayList(ls);
    }
}