美文网首页
187. Repeated DNA Sequences

187. Repeated DNA Sequences

作者: 7ccc099f4608 | 来源:发表于2020-03-19 13:52 被阅读0次

    https://leetcode-cn.com/problems/repeated-dna-sequences/

    image.png

    (图片来源https://leetcode-cn.com/problems/repeated-dna-sequences/

    日期 是否一次通过 comment
    2020-03-19 0

    public List<String> findRepeatedDnaSequences2(String str) {
            List<String> res = new ArrayList<>();
            if(str == null || str.length() < 10) {
                return res;
            }
    
            Set<Integer> wordSet = new HashSet<>();
            Set<Integer> secondWordSet = new HashSet<>();
            int[] map = new int[26];   // 实际上用不了这么大;但这么写,爸爸省事儿啊
            map['C' - 'A'] = 1;
            map['G' - 'A'] = 2;
            map['T' - 'A'] = 3;
    
            int value = 0;
            for (int i = 0; i < str.length(); i++) {
                value <<= 2;  // 每次向左移动2位
                value |= map[str.charAt(i) - 'A'];
                value &= 0xfffff;  // 16进制,每个占4位,所以 4*5==20位
                if (i < 9) {
                    continue;
                }
    
                // 只存在一次:wordSet里有,secondWordSet没有
                if(wordSet.contains(value)) {
                    res.add(str.substring(i-9, i+1));
                } else {
                    wordSet.add(value);
                }
    //            if (!wordSet.add(value) && secondWordSet.add(value)) {  // set.add() 无重复则返回true,反之为false
    //                res.add(str.substring(i - 9, i + 1)); // [i-9,i+1)
    //            }
            }
    
            return res;
        }

    相关文章

      网友评论

          本文标题:187. Repeated DNA Sequences

          本文链接:https://www.haomeiwen.com/subject/dzxlyhtx.html