187. Repeated DNA Sequences重復的DNA子串序列

[抄題]:

All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACGAATTCCG". When studying DNA, it is sometimes useful to identify repeated sequences within the DNA.

Write a function to find all the 10-letter-long sequences (substrings) that occur more than once in a DNA molecule.

Example:

Input: s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"Output: ["AAAAACCCCC", "CCCCCAAAAA"]

?[暴力解法]:

時間分析:

空間分析:

?[優化后]:

時間分析:

空間分析:

[奇葩輸出條件]:

  1. set轉成arraylist直接放到括號里就行了

[奇葩corner case]:

[思維問題]:

[英文數據結構或算法,為什么不用別的數據結構或算法]:

10個數,從開始算,加到9就可以了。

?

for (int i = 0; i + 9 < s.length(); i++)

?

.substring包左不包右,所以必須寫十位數。但是inde

String ten = s.substring(i, i + 10);

?

 
beginIndex =< str的值 < endIndex

?

[一句話思路]:

[輸入量]:空:?正常情況:特大:特小:程序里處理到的特殊情況:異常情況(不合法不合理的輸入):

[畫圖]:

[一刷]:

  1. set的判斷語句 沒加就自己自動加 沒必要再寫一遍
  2. set用add,map用put

[二刷]:

[三刷]:

[四刷]:

[五刷]:

? [五分鐘肉眼debug的結果]:

[總結]:

set就是判重,一個不夠用可以用兩個

[復雜度]:Time complexity: O(n) Space complexity: O(n)

[算法思想:迭代/遞歸/分治/貪心]:

[關鍵模板化代碼]:

[其他解法]:

[Follow Up]:

[LC給出的題目變變變]:

?[代碼風格] :

?[是否頭一次寫此類driver funcion的代碼] :

?[潛臺詞] :

?

class Solution {public List<String> findRepeatedDnaSequences(String s) { //ini: two setsList<String> result = new ArrayList<String>();Set<String> seen = new HashSet<String>();Set<String> ten = new HashSet<String>();//ccif (s.length() == 0) return result;//for loop: get substringfor (int i = 0; i + 9 < s.length(); i++) {String str = s.substring(i, i+ 10);if (!seen.add(str)) ten.add(str);}//returnreturn new ArrayList(ten);}
}
View Code

?

轉載于:https://www.cnblogs.com/immiao0319/p/9373543.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251130.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251130.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251130.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

http --- cookie與會話跟蹤

以購物網站Amazon.com為例 // (a)客戶端:首次請求Amazon.com根頁面 GET / HTTP/1.0 Host: www.amazon.com// (b)服務器:將客戶端重定向到一個電子商務軟件的URL上 HTTP/1.1 302 Found Location: http://www.amazon.com:80/exec/obidos/subst/home/redirect.html// (c)客戶端:對…

ES5 every/some/reduce/reduceRight的使用與重寫

被作為實參傳入另一函數&#xff0c;并在該外部函數內被調用&#xff0c;用以來完成某些任務的函數&#xff0c;稱為回調函數。 break、return用于終止循環的區別&#xff1a; return只能用在函數體內&#xff08;單獨一個for循環里直接用return會報錯&#xff09;對于多層循環…

同步異步單線程多線程初級理解

對于我開始接觸同步異步單線程多線程的概念的時候&#xff0c;都是分別理解同步和異步、單線程和多線程概念&#xff0c;當看到“使用同步方法保證線程安全”時愚昧的理解為那就是單線程咯&#xff1b;于是就陷入了困惑&#xff0c;同步等于單線程嗎&#xff1f;下面是我自己不…

http --- 基本認證與摘要認證

基本認證: // (a)客戶端:查詢 GET /cgi-bin/checkout?cart17854 HTTP/1.1// (b)服務器:質詢 HTTP/1.1 401 Unauthorized WWW-Authenticate: Basic realm"Shopping Cart"// (c)客戶端:響應 GET /cgi-bin/checkout?cart17854 HTTP/1.1 Authorization: Basic YnJpYW4…

對棧

1331【例1-2】后綴表達式的值 #include<bits/stdc.h>using namespace std;int sta[101];char s[256]; int comp(char s[256]){ int i0,top0,x; while(i<strlen(s)-2) { switch(s[i]) { case:sta[--top]sta[top1];break; case-:sta[--top]-sta[top1];break; case*:sta[…

hive中map相關函數總結

目錄 hive官方函數解釋示例實戰 hive官方函數解釋 hive官網函數大全地址&#xff1a; hive官網函數大全地址 Return TypeNameDescriptionmapmap(key1, value1, key2, value2, …)Creates a map with the given key/value pairs.arraymap_values(Map<K.V>)Returns an un…

【前端統計圖】echarts改變顏色屬性的demo

一&#xff1a;柱狀圖改變顏色 圖片.png代碼&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><!-- 柱狀統計圖 --><div class"row"><div …

DOM-1 DOM初探、JS對象、XML、幻燈片案例展示

DOM DOM —— Document Object Model(文檔對象模型)DOM 對象 → 宿主對象&#xff08;是瀏覽器提供的&#xff09;通過瀏覽器提供的方法表示或操作HTML和XML不能操作css標簽&#xff1a;<></>對元素&#xff1a;<>及內部的內容,getElementsByTagName獲取的是…

http --- 密碼、密鑰、對稱(公開)密鑰加密系統、數字簽名、數字證書的一些概念

密碼(cipher) // 密碼是一套編碼方案和使用相應解碼方式的結合體 // *明文:使用密碼加密之前的稱為明文 // *密文:使用密碼進行加密的稱為密文最初的密碼是相當簡單的,很容易就可以破解,于是產生了密碼機: // 密碼機可以用復雜得多得密碼來快速、精確地對報文進行編碼.它們可…

elasticsearch5.x:查詢建議介紹、Suggester 介紹以及Java-api實現

elasticsearch5.x&#xff1a;查詢建議介紹、Suggester 介紹 參考&#xff1a;http://www.cnblogs.com/leeSmall/p/9206646.html 參考(重點)&#xff1a;https://elasticsearch.cn/article/142 參考&#xff08;官網&#xff09;&#xff1a;https://www.elastic.co/guide/en/e…

DOM-2 document對象、獲取元素、節點、遍歷樹

一、document獲取元素 1. 方法 document.getElementById(‘box’) // 在IE8及以下是不分大小寫的&#xff0c;而且name值也能匹配上document.getElementsByClassName(’’) // IE8及以下是用不了的document.getElementsByTagName() 都兼容document.getElementsByName() 用的非…

javascript --- js中的事件

事件實現松耦合: // JS和HTML之間的交互是通過事件實現的. // 事件,就是文檔或瀏覽器窗口中發生一些特定的交互瞬間. // 可以使用偵聽器來預定事件,以便事件發生時執行相應的代碼. // 這種在傳統軟件工程中被稱為觀察員模式的模型,支持頁面的行為與頁面的外觀之間的松耦合事件…

centos系統設置局域網靜態IP

---恢復內容開始--- centos系統設置局域網靜態IP 很多時候&#xff0c;我們并不希望漏油器重啟之后&#xff0c;自己的服務器動態的獲取IP&#xff0c;這樣很不利&#xff0c;因為你可能裝了mysql&#xff0c;redis&#xff0c;等軟件&#xff0c;然后需要遠程去訪問這臺服務器…

SQLServer數據庫(二)

數據庫設計&#xff1a;就是將數據庫中的數據庫實體及這些數據庫實體之間的關系&#xff0c;進行規劃和結構化的過程。 項目開發過程&#xff1a; 需求分析 概要設計 詳細設計 代碼編寫 運行測試 打包發行 數據庫的系統分析基本步驟&#xff1a;收集信息、標識實體、標識每個實…

DOM-3 【utils/待講評】節點屬性、方法、封裝方法、DOM結構

講評 節點屬性 nodeType 元素節點 1 大寫 屬性節點 2 文本節點 3 #text 注釋節點 8 #comment document 9 DocumentFragment 11 nodeName是只讀屬性元素節點的nodeName是大寫的其余的是#小寫的元素節點沒有nodeValue屬性&#xff0c;null&#xff0c;是可寫的其余有&#xff08…

javascript --- DOM0級、DOM2級、跨瀏覽器 的事件處理程序

DOM0級事件處理程序: // 使用DOM0級方法指定的事件處理程序被認為是元素的方法 // 這個時候的事件處理程序是在元素的作用域中運行: <div id "myBtn" >DOM0</div> <script>var btn document.getElementById("myBtn");btn.onclick fun…

collections deque隊列及其他隊列

from collections import dequedq deque(range(10),maxlen10) dq.rotate(3)#隊列旋轉操作接受一個參數N&#xff0c;讓N>0時&#xff0c;隊列的最右邊N個元素會被移動到隊列最左邊&#xff0c;反之會移到隊列最右邊 dq.appendleft(-1)#頭部添加dq.extend([11,22,33])#尾部添…

002 模板實參推斷、重載與模板

模板實參推斷 一、模板函數顯示實參 情況1&#xff1a; template <typename T1, typename T2, typename T3> T1 sum(T2 a, T3 b) {return a b; } 分析&#xff1a;調用的時候就需要指定T1的類型&#xff0c;如&#xff1a;sum<float>(1, 2); 于是sum函數的返回類型…

DOM-4 【utils/待講評】節點創建刪除、元素屬性設置獲取、節點屬性

講評 節點創建 Document.prototype ← document.createElement(div)document.createTextNode(xxx) // 創建文本節點document.createComment(xxx) // 創建注釋節點 增加/剪切子節點 Node.prototype ← node.appendChild(node)總是在父元素的最后增加&#xff08;類似push&am…

javascript --- 事件對象和事件類型

// 無論程序使用"DOM0級"規范還是"DOM2級"規范,都會在局部產生一個event對象, // 將其打印出來研究: <div id"divBtn"><button id"rawBtn" >Click Me!</button></div> <script>const divBtn document…