[187. 重复的DNA序列]

187. 重复的DNA序列

    public static List findRepeatedDnaSequences(String s) {
        Set existSet = new HashSet<>();
        Set resultList = new HashSet<>();
        int length = s.length();
        for (int i = 0; i < length - 9; i++) {
            String temp  = s.substring(i, i + 10);
            if (existSet.contains(temp)) {
                resultList.add(temp);
            } else {
                existSet.add(temp);
            }
        }
        return new ArrayList<>(resultList);
    }

这题最大的难点在于读懂题目

题目翻译:在原字符串中查找长度为10的子串,要求子串的出现次数大于1次

解题思路:

  • 看着有点像窗口滑块遍历字符串,找到重复串
  • 使用一个容器 Set/Map 都行存放已遍历出的字串
  • 使用 Set 存放重复的穿,使用 Set 是方便不用自己去重
  • 返回的时候转换下即可

易错点:subString 的长度为10(0-9,1-10……)

你可能感兴趣的:([187. 重复的DNA序列])