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