91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中如何查看重復的DNA序列

發布時間:2022-01-17 14:16:55 來源:億速云 閱讀:143 作者:清風 欄目:大數據

本文將為大家詳細介紹“java中如何查看重復的DNA序列”,內容步驟清晰詳細,細節處理妥當,而小編每天都會更新不同的知識點,希望這篇“java中如何查看重復的DNA序列”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內容如下,一起去收獲新知識吧。

所有 DNA 由一系列縮寫為 A,C,G 和 T 的核苷酸組成,例如:“ACGAATTCCG”。在研究 DNA 時,識別 DNA 中的重復序列有時會對研究非常有幫助。

編寫一個函數來查找 DNA 分子中所有出現超過一次的10個字母長的序列(子串)。

示例:

輸入: s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"

輸出: ["AAAAACCCCC", "CCCCCAAAAA"]

答案:

 1public List<String> findRepeatedDnaSequences(String s) {
2    Set seen = new HashSet();
3    Set repeated = new HashSet();
4    for (int i = 0; i + 9 < s.length(); i++) {
5        String ten = s.substring(i, i + 10);
6        if (!seen.add(ten))
7            repeated.add(ten);
8    }
9    return new ArrayList(repeated);
10}

解析:

意思是每次截取10個字符的子串,并且這種字串出現的次數超過一次,代碼很簡單,每次截取的時候都會存放到seen集合中,如果存放失敗,表示出現了重復,再來看一種寫法

 1public List<String> findRepeatedDnaSequences(String s) {
2    Set<Integer> words = new HashSet<>();
3    Set<String> repeated = new HashSet<>();
4    char[] map = new char[26];
5    //map['A' - 'A'] = 0;
6    map['C' - 'A'] = 1;
7    map['G' - 'A'] = 2;
8    map['T' - 'A'] = 3;
9    for (int i = 0; i < s.length() - 9; i++) {
10        int v = 0;
11        for (int j = i; j < i + 10; j++) {
12            v <<= 2;
13            v |= map[s.charAt(j) - 'A'];
14        }
15        if (!words.add(v)) {
16            repeated.add(s.substring(i, i + 10));
17        }
18    }
19    return new ArrayList(repeated);
20}

這種解法和第一種其實原理都是一樣的,只不過這里存儲的是一個int類型,因為0,1,2,3分別表示的是ACGT,int類型的每兩位用來存儲ACGT中一個,我們還可以每3位存儲,最多也就是30位,小于int類型的32位,就是把下面第12行的v<<=2改為v<<=3。但不能每4位存儲,因為這樣超過了int的范圍。

java基本數據類型有哪些

Java的基本數據類型分為:1、整數類型,用來表示整數的數據類型。2、浮點類型,用來表示小數的數據類型。3、字符類型,字符類型的關鍵字是“char”。4、布爾類型,是表示邏輯值的基本數據類型。

如果你能讀到這里,小編希望你對“java中如何查看重復的DNA序列”這一關鍵問題有了從實踐層面最深刻的體會,具體使用情況還需要大家自己動手實踐使用過才能領會,如果想閱讀更多相關內容的文章,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

多伦县| 禹州市| 项城市| 曲阜市| 政和县| 东丰县| 建昌县| 绍兴市| 凌源市| 阜平县| 马公市| 四子王旗| 宿迁市| 鄢陵县| 新龙县| 平果县| 慈利县| 调兵山市| 石河子市| 潮州市| 辽宁省| 醴陵市| 伊吾县| 保靖县| 时尚| 临武县| 大新县| 洪泽县| 成都市| 丹凤县| 泽库县| 崇明县| 凉城县| 望都县| 澜沧| 延川县| 手游| 荔波县| 临桂县| 鸡东县| 土默特右旗|