zoukankan      html  css  js  c++  java
  • Q200510-02: 重复的DNA序列 程序解法

    问题:  重复的DNA序列

    所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。

    编写一个函数来查找 DNA 分子中所有出现超过一次的 10 个字母长的序列(子串)。

    示例:

    输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
    输出:["AAAAACCCCC", "CCCCCAAAAA"]

    程序:

    package test;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    
    public class Solution {
        public List<String> findRepeatedSequences(String s){
            Map<String,Integer> map=new HashMap<String,Integer>();
            
            int endIndex=0;
            int length=s.length();
            for(int i=0;i<s.length();i++) {
                endIndex=i+10;
                if(endIndex>length) {
                    break;
                }
                
                String sub=s.substring(i,endIndex);
                if(map.containsKey(sub)) {
                    int value=map.get(sub)+1;
                    map.put(sub, value);
                }else {
                    map.put(sub, 1);
                }
            }
            
            List<String> retvalList=new ArrayList<String>();
            for(String key:map.keySet()) {
                int value=map.get(key);
                if(value>1) {
                    retvalList.add(key);
                }
            }
            
            return retvalList;
        }
        
        
        public static void main(String[] args) {
            Solution slt=new Solution();
            List<String> ls=slt.findRepeatedSequences("AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT");
            for(String str:ls) {
                System.out.println(str);
            }
        }
    }

    输出:

    AAAAACCCCC
    CCCCCAAAAA

    --2020年5月10日--

  • 相关阅读:
    双向链表循环
    双向链表的删除操作
    双向链表的插入操作
    双向链表的结构
    双向链表的删除操作
    双向链表循环
    OD使用教程17 调试篇17
    OD使用教程17 调试篇17
    双向链表的结构
    独生子女证办理
  • 原文地址:https://www.cnblogs.com/heyang78/p/12864329.html
Copyright © 2011-2022 走看看