LeetCode 187. Repeated DNA Sequences 重复的DNA序列

All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACGAATTCCG". When studying DNA, it is sometimes useful to identify repeated sequences within the DNA.

Write a function to find all the 10-letter-long sequences (substrings) that occur more than once in a DNA molecule.

Example:

Input: s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"

Output: ["AAAAACCCCC", "CCCCCAAAAA"]

问题:

将DNA序列看作是只包含['A','C','G','T']4个字符的字符串,给一个DNA字符串,找到所有长度为10的且出现超过一次的子串。

思路:

建立字符串与重复个数的hashmap,再遍历找到。效率不太高,只比37%Java程序快。

class Solution {
    public List findRepeatedDnaSequences(String s) {
        //建立字符串与字符串出现数量的hashmap,将int>1的子串string返回
        Map string_map = new HashMap();
        List result = new ArrayList();
        for(int i=0; i1)
            {
                result.add(key);
            } 
        }
        return result;
    }
}

博主学习笔记,转载请注明出处,谢谢~

  

你可能感兴趣的:(Leetcode笔记)