首页 > 其他 > 详细

187. Repeated DNA Sequences

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

一、题目

  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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!