码迷,mamicode.com
首页 > 其他好文 > 详细

187. Repeated DNA Sequences

时间:2018-10-17 16:51:20      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:字符   分析   substring   set   去重   col   字符串   另一个   ret   

一、题目

  1、审题

  技术分享图片

  2、分析

    求出在 S 中出现至少两次的十个字符组成的字符串。

 

二、解答

  1、思路:

    采用一个 Set 存储每一个字符串,当已存储的字符串再次出现时,会添加失败,则表示此字符串至少出现了两次,应当存储在另一个 Set 中进行去重。最终将第二个 Set 转为 List 即可。

    public List<String> findRepeatedDnaSequences(String s) {
        
        Set<String> resultSet = new HashSet<String>();
        Set<String> seen = new HashSet<>(); // 过滤重复的目标字符串
        
        for (int i = 0; i + 9 < s.length(); i++) {
            String tmp = s.substring(i, i + 10);
            if(!seen.add(tmp)) 
                resultSet.add(tmp);
        }
        
        return new ArrayList<>(resultSet);
    }

 

187. Repeated DNA Sequences

标签:字符   分析   substring   set   去重   col   字符串   另一个   ret   

原文地址:https://www.cnblogs.com/skillking/p/9804715.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!