計(jì)算機(jī)專業(yè)里面哪個(gè)專業(yè)最好攀枝花seo
3妹:“太陽當(dāng)空照,花兒對(duì)我笑,小鳥說早早早,你為什么背上炸藥包”
2哥 :3妹,什么事呀這么開心呀。
3妹:2哥你看今天的天氣多好啊,陽光明媚、萬里無云、秋高氣爽,適合秋游。
2哥:是啊,都快立冬了,天氣還是這么熱。今年的冬天比以往來的要晚一些。
3妹:晚來也是要來的,看天氣預(yù)報(bào) 下周要降溫,估計(jì)沒幾天這種暖的天氣了。
2哥:注意保暖啊3妹,看你們女生還穿著裙子,不能只要美麗,就凍人啊。
3妹:我才不,天冷了我就穿秋褲,卷死她們。
2哥:說到卷她們,不如做一道題,在技術(shù)上卷死她們。 內(nèi)外兼修~
題目:
DNA序列 由一系列核苷酸組成,縮寫為 ‘A’, ‘C’, ‘G’ 和 ‘T’.。
例如,“ACGAATTCCG” 是一個(gè) DNA序列 。
在研究 DNA 時(shí),識(shí)別 DNA 中的重復(fù)序列非常有用。
給定一個(gè)表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中出現(xiàn)不止一次的 長度為 10 的序列(子字符串)。你可以按 任意順序 返回答案。
示例 1:
輸入:s = “AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT”
輸出:[“AAAAACCCCC”,“CCCCCAAAAA”]
示例 2:
輸入:s = “AAAAAAAAAAAAA”
輸出:[“AAAAAAAAAA”]
提示:
0 <= s.length <= 105
s[i]==‘A’、‘C’、‘G’ or ‘T’
思路:
哈希表
我們可以用一個(gè)哈希表統(tǒng)計(jì) s 所有長度為 10 的子串的出現(xiàn)次數(shù),返回所有出現(xiàn)次數(shù)超過 10 的子串。
代碼實(shí)現(xiàn)時(shí),可以一邊遍歷子串一邊記錄答案,為了不重復(fù)記錄答案,我們只統(tǒng)計(jì)當(dāng)前出現(xiàn)次數(shù)為 2 的子串。
java代碼:
class Solution {static final int L = 10;public List<String> findRepeatedDnaSequences(String s) {List<String> ans = new ArrayList<String>();Map<String, Integer> cnt = new HashMap<String, Integer>();int n = s.length();for (int i = 0; i <= n - L; ++i) {String sub = s.substring(i, i + L);cnt.put(sub, cnt.getOrDefault(sub, 0) + 1);if (cnt.get(sub) == 2) {ans.add(sub);}}return ans;}
}