187. 重复的DNA序列 --力扣 --JAVA

题目

DNA序列 由一系列核苷酸组成,缩写为 'A', 'C', 'G' 和 'T'.。

例如,"ACGAATTCCG" 是一个 DNA序列 。

在研究 DNA 时,识别 DNA 中的重复序列非常有用。

给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中出现不止一次的 长度为 10 的序列(子字符串)。你可以按 任意顺序 返回答案。

解题思路

  1. 遍历将字符串每十个字符分割成一个字符串存储到Map中进行统计出现次数;
  2. 将出现次数超过1次的存储到list当中输出。

代码展示

java 复制代码
class Solution {
    public List<String> findRepeatedDnaSequences(String s) {
        Map<String,Integer> data = new HashMap<>();
        for (int i = 0; i <= s.length() - 10; i++){
            String str = s.substring(i, i + 10);
            Integer temp = data.getOrDefault(str, 0);
            data.put(str, temp + 1);
        }
        List<String> ans = new ArrayList<>();
        for (String str : data.keySet()){
            if(data.get(str) > 1){
                ans.add(str);
            }
        }
        return ans;
    }
}
相关推荐
jiao_mrswang43 分钟前
leetcode-18-四数之和
算法·leetcode·职场和发展
qystca1 小时前
洛谷 B3637 最长上升子序列 C语言 记忆化搜索->‘正序‘dp
c语言·开发语言·算法
薯条不要番茄酱1 小时前
数据结构-8.Java. 七大排序算法(中篇)
java·开发语言·数据结构·后端·算法·排序算法·intellij-idea
今天吃饺子1 小时前
2024年SCI一区最新改进优化算法——四参数自适应生长优化器,MATLAB代码免费获取...
开发语言·算法·matlab
是阿建吖!1 小时前
【优选算法】二分查找
c++·算法
王燕龙(大卫)1 小时前
leetcode 数组中第k个最大元素
算法·leetcode
不去幼儿园2 小时前
【MARL】深入理解多智能体近端策略优化(MAPPO)算法与调参
人工智能·python·算法·机器学习·强化学习
Mr_Xuhhh2 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
盼海3 小时前
排序算法(五)--归并排序
数据结构·算法·排序算法
网易独家音乐人Mike Zhou6 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot